现在如何将 Eclipse 项目导入 Android Studio?
Posted
技术标签:
【中文标题】现在如何将 Eclipse 项目导入 Android Studio?【英文标题】:How do you import an Eclipse project into Android Studio now? 【发布时间】:2014-05-12 12:54:33 【问题描述】:在 android Studio 中为一个用于更改项目结构和生成 Gradle 文件的 Eclipse 项目使用“导入项目”,但现在(我使用的是 AS 0.5.3)它只生成 IDEA 文件(.iml、.idea ) 但不是 Gradle,它也没有触及文件结构。
更新:尝试在 Eclipse 中导出 gradle 文件不会为应用导出它们,它也不会在 Android Studio 中显示为模块。
【问题讨论】:
这是什么项目?你是如何准确导入的?如果您正在导入一个 ADT 项目,该项目在通常的位置有 Eclipse 项目文件或 AndroidManifest.xml 文件,它应该引导您完成一个专门的导入,该导入设置 Gradle 构建文件并以其他方式修复项目.但它不会对非 Android 项目进行一般导入。 这是一个包含多个库的 Android 项目,我通过 AS 欢迎屏幕中的“导入项目”按钮将其导入。我知道它应该是一个专门的导入向导,就像我以前做过的那样,但由于某种原因,这次没有这样做。 它没有给你专门的导入向导? 【参考方案1】:在较新版本的 Android Studio 中,引入 Eclipse/ADT (Android Development Tool) 项目的最佳方式是将其直接导入 Android Studio;我们曾经建议您先将其从 Eclipse 导出到 Gradle,但我们更新 ADT 的频率不足以跟上 Android Studio 的步伐。
无论如何,如果您在启动 Android Studio 时从“文件”菜单或欢迎屏幕中选择“导入项目”,它应该会引导您完成一个专门的向导,提示您它打算将文件复制到新的目录结构而不是就地导入它们,它将提供修复一些常见的事情,比如将依赖项转换为 Maven 样式的包含等。
您似乎没有得到这种专门的流程。我认为它可能无法将您导入的项目识别为 ADT 项目,并且默认为不了解 Gradle 的旧内置 IntelliJ 行为。要使专业导入工作,必须满足以下条件:
你导入的项目的根目录必须有一个AndroidManifest.xml文件。 要么: 根目录必须包含来自 Eclipse 的 .project 和 .classpath 文件 或 根目录必须包含 res 和 src 目录。如果您的项目很复杂,也许您没有将其指向它希望导入成功的根目录。
【讨论】:
你是对的,我选择的是项目目录的根目录(就像在 Eclipse 中一样),而不是主项目的目录。选择之后,我确实得到了专门的向导。谢谢! 感谢您的解释。我试图导入我有几个库项目以及应用程序项目的根目录。一切似乎都很好,只是它没有创建 gradle 文件或新的文件夹结构。所以它一开始,它就抱怨它不是一个 gradle 构建,我无法弄清楚它为什么不起作用。或许未来 AS 可以更清楚地把发生的事情说出来。 我认为的问题是 Android Studio 导入文档只讨论“项目目录”,在 Eclipse 世界中,它可能意味着根文件夹或实际的应用程序文件夹。 对我来说,出现了专门的菜单,但“下一步”按钮不起作用,也没有解释原因。有没有其他人遇到过这个问题 这应该在开发者文档中用粗体书写【参考方案2】:从 Eclipse 导出
Update your Eclipse ADT Plugin to 22.0 or higher,然后转到文件 |导出
现在转到Android然后点击Generate Gradle build files
,然后它会为你生成gradle文件。
选择您要导出的项目
现在点击完成
导入 Android Studio
在 Android Studio 中,关闭所有当前打开的项目。您应该会看到“欢迎使用 Android Studio”窗口。
点击导入项目。
找到您从 Eclipse 导出的项目,展开它,选择它并单击 OK。
【讨论】:
等待几分钟,将您的项目导入 Android Studio,可能需要几分钟,但没问题 我已经尝试过了,但它只为根目录生成 gradle 文件,但它不会生成模块文件(例如 build.gradle),即使我已经选择了项目(以及所有相关的库)。 @Phazor,我已经更新了我的答案,逐步完成,它应该可以工作。不要尝试从 File-> export 导入项目,首先简单地关闭当前打开的项目(如果有)在 Android Studio 中,然后你应该会看到 Welcome to Android Studio 窗口,你会在其中找到 Import Project,从那里导入你的项目你从 Eclipse 导出 我就是这样做的。问题是 Eclipse 没有为每个项目生成模块文件,包括主项目。项目根目录的 settings.gradle 文件只包含已经支持 gradle 的库。除了为项目的根目录创建 gradle 文件之外,它没有做任何事情。其他库或主项目都没有 build.gradle 文件。 我们还没有真正更新文档,但这不再是将 Eclipse 项目导入 Android Studio 的最佳方式,主要是因为 Studio 变化太快,以至于我们在 ADT 中更新导出的频率太快了.直接导入是一种更好的方法,但我不确定为什么它在这种情况下不起作用。【参考方案3】:尝试以下步骤: 1-点击导入项目(Eclipse,ADT,...)
2- 选择 Eclipse 项目的主目录
3- 保留默认值。前两个选项用于将 jar 文件更改为远程库(依赖项)。这意味着在构建 Android Studio 时尝试在本地系统或远程存储库中查找库。最后一个选项是在导入后仅将一个文件夹显示为应用程序。
4- 然后,您将看到更改摘要
5- 然后,如果您看到 Gradle 项目同步失败,您应该转到项目视图(左上角)。然后,您应该转到您的项目-> 应用程序并打开 build.gradle。
6- 然后,您应该将您的 compilesdkVersion 和 targetsdkVersion 更改为您在 buildToolsVersion 中看到的当前版本(我的是 23)。例如,在我的项目中,我应该在两个地方将 17 更改为 23
7- 如果您在依赖项中看到错误,您应该更改它的版本。例如,在我的项目中,我需要检查我使用的是哪个版本的 android 支持库。因此,我打开 SDK 管理器并转到底部查看版本。然后,我应该用我当前的版本替换我的 Android Studio 版本,然后点击右上角的重试
希望对你有帮助。
【讨论】:
【参考方案4】:使用 Android Studio 变得更简单 您只需要先选择
-
导入项目(eclipse.....)
然后选择你的文件夹基于 Eclipse 的项目。如下面的这个
3.根据您使用的项目类型和库(ActionBarSherlock),您可能会提示特殊导入向导,因此请继续并单击下一步然后完成。 在这种情况下,它很简单
4.你就完成了。
但有时 debug 或 Run 选项不起作用,并且会显示类似
的错误消息“此项目结构不是基于 gradle 或将其迁移到 gradle”
某事 解决这个问题 关闭打开的 eclipse 项目并通过与之前导入项目(eclipse adt、gradle 等)相同的过程重新打开同一个项目)这次 android studio 将添加所有必要的 gradle 文件,绿色调试选项也将起作用。 我不小心做了这个,但它有效,我只是希望它也适用于你。
【讨论】:
另一个起点是From File-->New-->Import Project【参考方案5】:自从这个问题发布以来,Android Studio 已经得到了改进,并且最新版本的 Android Studio(在撰写本文时,我们处于 2.1.1)具有相当好的 Eclipse 导入能力,因此将 Eclipse 项目直接导入 Android Studio 是现在是将项目从 Eclipse 迁移到 Android Studio 的最佳方法。
我将在下面描述如何做到这一点,包括人们可能遇到的一些陷阱。我将特别处理导入包含多个应用程序共享一个或多个项目库的 Eclipse 工作区(迄今为止发布的方法似乎仅限于导入一个 Eclipse 应用程序项目及其项目库)。虽然我不会处理所有可能的问题,但我会详细介绍其中的一些问题,希望对那些第一次经历这个过程的人有所帮助。
我最近从 Eclipse 工作区导入了项目。此工作区包括四个库项目,每个项目最多可在九个项目之间共享。
一些背景:
一个 Eclipse 工作区包含多个项目,可能是库项目或应用程序。
Android Studio 项目 类似于 Eclipse 工作区,因为它可以包含库项目和应用程序。然而,库项目或应用程序在 Android Studio 中由“模块”表示,而在 Eclipse 中由“项目”表示。
因此,总结一下:Eclipse 工作区最终会成为 Android Studio 项目,而工作区中的 Eclipse 项目最终会成为项目中的 Android Studio 模块。
您应该通过创建一个 Android Studio 项目(文件/新建/新建项目)来开始导入过程。您可以为该项目指定与指定 Eclipse 工作区相同(或相似)的名称。该项目最终将包含您的所有模块,每个模块用于您将导入的每个 Eclipse 项目(包括项目库)。
导入过程不会更改您的原始 Eclipse 文件,只要您将导入的文件放在不同的文件夹层次结构中,因此您应该为该项目选择一个不在原始 Eclipse 层次结构中的文件夹。例如,如果您的 Eclipse 项目都在一个名为 Android 的文件夹中,您可能会创建一个名为 AStudio 的同级文件夹。
然后可以将您的 Android Studio 项目创建为这个新文件夹的子文件夹。新建项目向导将提示您输入此***项目文件夹,它将在其中创建您的项目。
Android Studio 的新项目向导会在您创建项目时要求您配置单个模块。起初这可能有点令人困惑,因为它们实际上从未告诉您您正在创建一个模块,但您是;您正在创建一个包含单个模块的项目。显然,每个项目都需要至少有一个模块,因此,由于您依赖 Eclipse 来提供模块,因此您的初始模块将是一个占位符,可以完全满足该正式要求。
因此,您可能希望为您的项目创建一个尽可能少的初始模块。因此,选择 Phone and Tablet 作为您的模块类型,接受默认的最低 SDK(API 级别 8),并为您的模块选择 Add No Activity。
接下来,在您的工作区中选择一个需要最多库的 Eclipse 应用程序项目作为您要导入的第一个项目。这样做的好处是,当您导入该项目时,它使用的所有库项目(直接或间接,如果您的一些库项目本身需要其他库项目)将作为导入过程的一部分与它一起导入.
每个导入的项目都会在您的 Android Studio 项目中获得自己的模块。所有这些模块都将是彼此的兄弟(无论是在您的项目层次结构中,还是在放置它们的文件的文件夹层次结构中),就像您分别导入了这些模块一样。但是,作为导入过程的一部分,将在您应用的 build.gradle 文件中为您创建模块之间的依赖关系。
请注意,在您完成导入、测试和调试这个“最依赖”的 Eclipse 项目及其支持库项目之后,您将继续导入第二个 Eclipse 应用程序项目(如果您的工作区中有第二个项目)并且 its 库项目模块(之前导入的那些被导入向导发现为现有模块并重新用于这个新模块,而不是被复制)。
因此,您永远不必直接从 Eclipse 导入单个库项目;根据它们对您导入的应用程序项目的依赖关系,它们都将被间接引入。这是假设您在工作区中创建的所有库项目都是为了满足同一工作区中一个或多个应用项目的需求。
要执行第一个应用项目的导入,请返回 Android Studio,当您在刚刚创建的项目中时,选择 File / New / New Module。你可能认为你应该使用文件/新建/导入模块,但是不,你应该不,因为如果你这样做,Android Studio 将创建一个 new 项目来保存您导入的模块,并将您的模块导入到 那个 项目中。你实际上可以以这种方式创建你的第一个模块,但是第二个到第N个模块仍然需要你使用这种其他方法(将一个模块导入到一个现有的 项目),所以我认为只是从一个“空”项目开始(或者更确切地说,一个具有自己的空虚、无所事事的占位符模块),然后将每个 Eclipse 项目作为新模块导入进入那个项目(即我们在这里采用的方法),可能不会那么混乱。
因此,您将使用几乎空的新项目,并在其中执行文件/新建/新建模块。此调用的向导将让您选择要创建的模块类型。您必须选择“导入 Eclipse ADT 项目”。这就是访问知道如何将 Eclipse 项目转换为当前 Android Studio 项目中的 Android Studio 模块(以及它所依赖的库模块)的向导。
当提示输入源文件夹时,您应该输入 Eclipse 项目的文件夹(这是包含该项目的 AndroidManifest.xml 文件的文件夹)。
然后导入向导将显示它打算创建的模块名称(类似于原始 Eclipse 项目的名称,但首字母小写,因为这是区分模块名称和项目名称的约定(以一个大写字母)。接受这个默认值通常效果很好。
模块名称下方是标题为“其他所需模块”的部分。这将列出您正在导入的模块(或任何 its 库等)所需的每个库。由于这是您要导入的第一个模块,因此这些模块都不会出现在您的项目中,因此默认情况下,每个模块都将选中其导入框。您应该选中这些,因为您需要这些模块。 (注意,当你稍后导入 Eclipse 应用项目时,如果他们需要的库已经被导入,这些库仍然会出现在这里,但是会有一个注释“项目已经包含带有这个的模块”名称”,并且默认情况下,导入框将被un选中。在这种情况下,您应该不选中该框,以便导入器将您新导入的模块连接到已导入的库。可能接受 Android Studio 为您的模块创建的默认名称对于允许 IDE 查找和重用这些库模块很重要。
接下来,导入器将提供用 Gradle 依赖项替换任何 jar 和库源,并为任何依赖模块创建 camelCase 模块名称,默认检查所有这些选项。您通常应该选中这些选项并继续。但是,请阅读有关可能出现的问题的警告。请记住,您始终可以删除一个或多个导入的模块(通过“项目结构”对话框)并重新开始导入过程。
我得到的下一个显示 (YMMV) 声称我的 SDK 安装中没有安装 Android 支持存储库。它提供了一个按钮来打开 Android SDK 管理器以进行安装。但是,那个按钮对我不起作用。我手动打开 SDK 管理器作为单独的应用程序,发现 Android 支持存储库已经安装。然而,有一个更新。我安装了它,然后在导入对话框中点击了刷新按钮,但什么也没做。因此,我继续进行,并且感知到缺少此存储库似乎并没有损害导入过程(尽管我确实收到了关于它不时丢失的消息,在使用导入的代码时,我能够安抚通过单击纠正问题的提供的链接 - 至少是暂时的)。最终,当我为存储库安装更新时,这个问题就消失了,所以你可能根本没有遇到过。
此时,您将单击“完成”,稍后它应该会创建您的模块并构建它们。如果一切顺利,您应该会在 Gradle 控制台中收到 BUILD SUCCESSFUL 消息。
一个怪癖是,如果构建失败,您可能不会在项目层次结构中看到您导入的模块。在新模块出现之前,您似乎需要获得第一个有效的构建(无论如何,我的经验)。您可能仍然可以在“文件/项目结构”对话框中看到新模块(例如,如果您想删除它们并重新开始导入)。
请记住,由于您没有更改原始 Eclipse 项目,因此您始终可以删除刚刚导入的模块(如果导入失败),然后重新开始。您甚至可以在删除您的 Android Studio 模块后对 Eclipse 端进行更改,如果这会使第二次导入更好(只要您保留在 Eclipse 下构建现有源的回退能力)。正如您将在下面讨论版本控制时看到的那样,您可能需要保留在 Eclipse 下构建的能力,因为在 Android Studio 下项目结构发生了变化,因此如果您需要返回之前的提交迁移到 Android Studio(例如,修复错误),您将希望能够在 Eclipse 中构建较早的提交。
要删除模块,您必须选择文件/项目结构,然后从对话框左侧选择模块,然后按删除键。出于某种原因,我无法直接在项目层次结构中删除模块;必须使用此项目结构对话框来完成。
导入向导会生成一个 import-summary.txt 文件,其中包含可能遇到的任何问题的详细列表,以及为解决这些问题而采取的措施。您应该仔细阅读它,因为它可能会为您在构建或运行导入的代码时遇到问题提供线索。它还将帮助您找到导入器移动的内容,以适应 Android Studio 项目的不同结构。
如果一切不顺利,那么看看你可能遇到的这些可能的问题,以及这些问题的解决方案:
一般来说,我遇到的问题主要有两种:
-
Proguard 问题
明显的问题
当 Proguard 出现问题时,库中方法的(混淆的)名称可能与从应用程序调用它们时使用的名称不匹配,并且您将收到编译器错误,例如“错误:找不到符号类... "
在 Eclipse 中,库项目几乎忽略了 Proguard 的东西,您正在构建的任何应用程序项目的 Proguard 东西不仅为它自己确定混淆等,还为处理它所依赖的所有库.这通常是您想要的。
但是,在 Android Studio 中,您需要进行一些更改才能达到同样的效果。基本上,在每个库项目模块的 build.gradle 文件中,你会想要这样的东西:
buildTypes
release
minifyEnabled false
consumerProguardFiles 'proguard.cfg'
其中 proguard.cfg 是您的库模块自己的 proguard 配置文件。
“consumerProguardFiles”中的“consumer”一词显然是指使用此库模块的应用程序模块。因此,来自该应用程序的 proguard 命令优先于库模块本身的命令使用,显然这会导致协调和兼容的混淆,因此从应用程序模块到其库模块的所有调用都是使用匹配的符号进行的。
这些“consumerProguardFiles”条目在导入过程中不会自动创建(至少这是我自己的经验),因此如果不是为您在导入期间。
如果您想单独分发您的库项目,并进行混淆处理,那么您需要一个单独的 proguard 文件。我自己没有这样做,所以这超出了这个答案的范围。
在应用模块中,你会想要这样的东西:
buildTypes
release
minifyEnabled true
proguardFiles 'proguard.cfg'
(顺便说一句,在撰写本文时,虽然我的应用程序运行良好,但我还没有直接确认使用这种方法实际上会混淆,所以请自己检查一下 - 例如,使用像 apktool 这样的反编译器。稍后我将对此进行检查,并在获得该信息时编辑此答案)。
第二种问题是由于 Eclipse 在编译使用这些库项目的应用程序项目时几乎忽略了库项目的清单文件,而在 Android Studio 中,显然存在两者的交错没有始终如一地将应用的清单优先于其库的清单。
我遇到这种情况是因为我有一个库清单(仅出于文档目的)列出了一个抽象 Activity 类作为主要活动。在我的应用程序中有一个从这个抽象类派生的类,它在使用该库的每个应用程序的清单中声明。
在 Eclipse 中,这从未引起任何问题,因为库清单被忽略了。但在 Android Studio 中,我最终将该抽象类作为应用程序的活动类,当代码尝试实例化该抽象类时,这会导致运行时错误。
在这种情况下,您有两个选择:
-
使用工具语法覆盖应用清单中的特定库清单内容 - 例如:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.goalstate.WordGames.FullBoard.trialsuite" xmlns:tools="http://schemas.android.com/tools" . . <application tools:replace="android:name"
或者,
-
几乎从库模块的清单中删除所有内容,并依靠应用程序模块的清单来提供每个值。请注意,您确实需要为每个库模块拥有一个清单,但只需要标头和一个仅包含包属性的裸清单元素即可。
我尝试了这两种方法,最后选择了上面的方法 2,作为更简单的方法。但是,如果您想单独分发库模块,则需要创建一个更有意义的清单文件,以反映每个库模块自己的个性化需求。
可能有一种更“正确”的方法可以做到这一点,它将每个库的要求(例如权限)放在库清单本身中,并允许自动交错过程将这些与为应用程序声明的那些结合起来。然而,鉴于 Eclipse 忽略了库的清单,至少在最初完全依赖应用程序清单并将库清单剥离到最基本的部分似乎更安全。
请注意,Eclipse 项目中的一些项目属性以及清单属性将用于构建部分 build.gradle 文件。具体来说,build.gradle 中的 compileSdkVersion 设置为 Eclipse 项目属性中的项目构建版本,applicationId 是应用清单中的包名称,minSdkVersion 和 targetSdkVersion 也是从应用的清单文件中复制的。 build.gradle 的 dependencies 部分来自项目属性中的库项目依赖项。
请注意,这可能会使您的一些 AndroidManifest.xml 值变得多余并且很可能是剩余的(即未使用的)。这可能会造成混乱。我的理解是 build.gradle 值是实际产生影响的值,并且诸如 targetSdkVersion 之类的清单值不再用于构建目的。但是,它们仍可能被 Google Play 等应用商店使用;我不确定哪种方式,所以在这一点上,我只是将它们串联起来。
除了上述两种问题之外,还有更多常规的事情,比如当您在 Android Studio 中只安装了 23 级的 SDK 时,导入一个项目构建级别为 22 的项目。在这种情况下,最好编辑应用模块的 build.gradle 文件以将 compileSdkVersion 从 22(导入的值)移动到 23,而不是安装 22 级的 SDK,但任何一种方法都应该有效。
在整个过程中,当某些东西没有正确构建并且您进行更改以尝试解决它时,您可能想要尝试构建/重建项目和/或工具/Android/使用 Gradle 文件同步项目,和/或文件/使缓存无效/重新启动,以确保您的更改已被完全合并。我不知道什么时候这些是真正必要的,因为我不知道当你还没有成功构建时增量完成了多少,但我相当定期地执行它们作为一种迷信的仪式,而且我'相当肯定它有帮助。例如,当我遇到似乎是由于无法找到启动图标资源而导致的 Resources$NotFound 运行时错误时,我尝试了所有三个,并且问题得到了解决。
当您为您的第一个 Eclipse 项目执行上述操作并成功构建后,如果幸运的话,您可以从 Android Studio 顶部的下拉菜单中选择您的应用模块,显示在播放按钮左侧,然后单击播放按钮本身,然后选择一个设备或 Android 虚拟设备,该应用程序应加载运行。
同样,您应该能够使用构建/生成签名的 APK 功能为您的应用创建签名副本。请注意,运行您的签名副本时可能会出现一些与导入相关的错误,而这些错误在使用播放按钮时不会出现,因此您需要在确定导入完成之前确认两者都正常工作。
在此之后,您可能想要打开版本控制。我自己使用 git,但还有许多其他选项可用。
版本控制大多超出了这个答案的范围,但有一些事情会受到导入过程的影响。首先,在 Eclipse 中,您可能会将各种文件夹中的各种项目卡在各处,但是当您导入 Android Studio 时,所有模块都将创建为主项目文件夹的直接子文件夹。因此,如果您为 Eclipse 中的每个项目或在每个组的父文件夹下组织的相关项目组(如我所做的那样)有一个单独的 git 文件夹,那将不会很好地转换为 Android Studio。
我对此的了解有限,因为我还没有在 Android Studio 中使用过版本控制,所以也许有办法解决这个问题,但似乎 Android Studio 中的所有版本控制都是在项目级别统一的,所以您的所有模块都将在一个 git 存档下。
这意味着您可能需要放弃旧的 git 存档并重新开始为您导入的源代码使用新存档。这意味着您将希望保留旧的 git 存档,以便可以与 Eclipse 一起使用它来执行任何需要的错误修复等,至少在一段时间内。而且您还希望它保留您项目的历史记录。
如果您有幸将所有项目组织在一个 Eclipse 工作区下,并且您为这些项目使用了一个 git 存档,那么您可能只是从并在您的 Eclipse 工作区文件夹下到您的 Android Studio 项目文件夹中和下。然后,您可以将 Eclipse 项目中任何仍然相关的 .gitignore 项目编辑到为您的 Android Studio 项目自动生成的 .gitignore 文件中,并让 git 找出在导入过程中发生了哪些变化(以及一些事情 将 被移动 - 例如,清单文件不再位于模块的顶层)。其他人报告说 git 非常擅长找出发生了什么变化。我自己没试过。
但是,即使您这样做了,回到您从 Eclipse 迁移到 Android Studio 之前的提交,也将回到仅在 Eclipse 内部才有意义的一组文件。所以听起来,嗯,“很难”工作。特别是因为 Eclipse 仍将指向其原始项目文件夹集。
我个人有多个 git 档案用于我的各种相关项目集,因此我决定彻底休息并在 Android Studio 中重新启动 git。如果你必须这样做,它可能会影响你的计划,因为在这种情况下你会希望在你的代码开发中处于一个非常稳定的点,然后再进行移动,因为你将在版本控制中失去对旧代码的一些可访问性迁移到 Android Studio 后,系统(例如,与导入后代码合并的能力)。
这个答案中与 git 相关的部分是推测性的,因为我还没有在我导入的项目文件上实际使用版本控制,但我想包含它以对挑战有所了解,我计划在我对 Android Studio 中的版本控制进行了更多工作后更新我的答案。
【讨论】:
感谢您对 Android Studio 项目结构和 Eclipse 工作区结构之间差异的详细讨论 - 非常有助于了解过渡过程中发生的情况,尤其是在将库项目合并到应用程序中时。你对 Git 的体验有什么更新吗?关于在 Git 中使用 Eclipse 项目结构建立代码库,我的立场相同,并且希望能够以某种方便的方式访问早期版本的源文件。 @jsevy:我最终使用了单独的 git 安装,而不是使用与 Android Studio 集成的 git。我在 Android Studio 项目级别设置了一个 git 存档。文件的颜色编码仍然有效,因为 Android Studio 了解我正在使用的 git 存档(它是由 gitHub 分发的,我在豪华 git 命令外壳中使用它。我依靠 gitk 向我展示提交链,一切在 Android Studio 之外。我并不是说从 Android Studio 内部使用 git 是一个坏主意;我只是决定采用使用外部安装的方法。 @jsevy:关于 Eclipse 版本,我只是将旧的 git 存档保留在旧的文件夹层次结构中。如果我需要返回到代码的 Eclipse 版本,我将只使用该存档,并使用 Eclipse 进行更新的构建。我已经失去了将 Eclipse“时代”的提交与 Android Studio“时代”的提交合并的能力,但幸运的是,这不是必需的。如果我必须对旧代码进行这样的更改,我只需要在 Android Studio 代码中并行进行。【参考方案6】:根据http://tools.android.com/tech-docs/new-build-system/migrating-from-eclipse-projects, 你有几个选择 - 简单地导入 - 首先从 Eclipse 预导出。
如果您的项目包含许多特定于 Eclipse 的关系,则从 Eclipse 预导出可能是更好的选择。作为。无法“翻译”Eclipse 可以生成的所有内容。如果您想继续使用 Eclipse 以及 A.S.在这个项目代码上,这是更好的选择。如果您选择此方法,请阅读以上链接,有一些重要的先决条件。 简单地导入 AS 将使 AS '翻译'并重新排列项目,这是推荐的方法,特别是如果您不打算返回 Eclipse。在这种情况下,您让 A.S.向导做所有事情,你不需要手动生成 gradle 文件。
【讨论】:
【参考方案7】:除了上面 Scott Barta 的回答之外,如果有对 Eclipse 工作区库文件的引用,您可能仍然会遇到导入问题,例如
/workspace/android-support-v7-appcompat
是一个普通的。
在这种情况下,导入将停止,直到您提供参考(如果您从 git repo 克隆,它可能不存在)甚至指向您自己的安装(例如 /android-sdk -macosx/extras/android/m2repository/com/android/support/appcompat-v7) 将不会被识别并会停止导入,让您处于无人区。
要解决这个问题,请在来自 Eclipse 项目的 project.properties 或 .classpath 文件中查找 refs 并将它们删除/注释掉,例如
<classpathentry combineacces-s-rules="false" kind="src" path="/android-support-v7-appcompat"/>
这将使您通过导入阶段,然后您可以将这些引用添加到您的 build.gradle (Module:app) 中,如 Android tutorial 中所示,如下所示:
dependencies
compile 'com.android.support:appcompat-v7:22.2.0'
【讨论】:
【参考方案8】:这是一种更简单的迁移方式:
从一个示例 Android Studio 项目开始。 打开 android studio 并创建一个新项目(或)只需在此处下载一个“示例”工作室项目:https://github.com/AppLozic/eclipse-to-android-studio-migration。 现在,按照以下说明在 Android Studio 中打开下载的项目。
将 eclipse 项目模块导入 Android Studio。 选择文件 -> 新建 -> 导入模块 图片标题
接下来,选择eclipse项目的路径并导入模块。如果您看到“无法同步 Gradle 项目”消息,请点击“安装构建工具并同步项目...”
现在,按照以下简单步骤删除示例项目模块:
打开 settings.gradle 并删除“include ‘:app’” 右键单击“应用程序”模块并“删除”它。 现在,我们拥有的是使用 Gradle 构建在 Android Studio 中打开的 Eclipse 项目。
以下是一些可能对您有所帮助的其他链接:
http://developer.android.com/sdk/installing/migrate.html 来源:http://www.applozic.com/blog/migrating-project-from-eclipse-to-studio/
【讨论】:
【参考方案9】:简单步骤: 1.进入安卓工作室。 2.如果有的话,关闭所有打开的项目。 3.会有一个选项说导入非 Android Studio 项目(Eclipse 等)。 4.点击它并选择你的项目 不就是享受!!!
【讨论】:
【参考方案10】:停止安装 android studio 3.0.1 并返回 2.3.3(稳定版)。检查稳定版,你可以找到很多
您只需卸载并返回到其他版本。是的,它要求单独创建 gradle 文件,这对我来说是全新的!
失败是成功的垫脚石。
【讨论】:
【参考方案11】:引入Eclipse/ADT
项目的最佳方法是将其直接导入Android Studio。首先GO to Eclipse project
& 删除project.properties
文件。
之后,打开 Android studio Tool 并导入 Eclipse 项目(Eclipse ADT、Gradle 等)。
【讨论】:
以上是关于现在如何将 Eclipse 项目导入 Android Studio?的主要内容,如果未能解决你的问题,请参考以下文章