如何将具有复杂lib结构的Eclipse工作区导入Android Studio?

时间:2015-10-29 15:00:13

标签: android eclipse android-studio gradle

我有几个应用程序,这些应用程序一起使用多个库项目 所以我有15个图书馆项目,其中包括20个不同的应用项目。

当我试图从Eclipse转移到Android Studio时,Android Studio试图将这15个lib复制到每个应用程序项目,这很糟糕 - 这就是我继续使用Eclipse的原因。

现在转移到Android Studio是不可避免的,我真的不知道如何在Eclipse中保存我的lib结构,就像在Eclipse中一样。
在Eclipse中它非常简单,您可以将项目标记为lib,然后您可以将其包含到任何其他项目而无需复制源文件。

这可以在Android Studio上使用吗? 如果是的话,你能告诉我怎么样吗?

注意:Lib结构有点复杂 对于insance,一些libs正在使用其他库等。

1 个答案:

答案 0 :(得分:1)

同样在Android Studio中,您可以使用库模块而无需在不同项目中复制源代码。 同时将项目从Eclipse迁移到Android Studio,检查是否可以使用maven依赖项替换相同的lib或jar。迁移很容易。

这里有一些步骤要在更多项目中包含相同的库。

您可以使用settings.gradle属性在project().projectDir中指定相对路径,如下所示:

 include ':lib'
 project(':lib').projectDir = new File('xxxxxx') // Relative file path from your settings.gradle

通过这种方式,您可以在项目中使用lib模块而无需克隆代码。

要将模块标记为库,您只需在build.gradle(模块)中应用正确的插件。

apply plugin: 'com.android.library'

示例:

    Project0
    |--library
    |----build.gradle
    |build.gradle
    |settings.gradle

    Project1
    |--app
    |----build.gradle
    |build.gradle
    |settings.gradle
Project1/settings.gradle

中的

include ':library'
project(':library').projectDir = new File(settingsDir, '../Project0/library')

付费参加:您必须引用library内的Project0文件夹,而不是Project0的根文件夹。

Project1/app/build.gradle

中的

dependencies {
   compile project(':library')
}