【问题标题】:How to import an Eclipse workspace with a complicated lib structure into Android Studio?如何将具有复杂lib结构的Eclipse工作区导入Android Studio?
【发布时间】:2015-10-29 15:00:12
【问题描述】:

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

当我尝试从 Eclipse 迁移到 Android Studio 时,Android Studio 尝试将这 15 个库复制到每个应用程序项目中,结果一团糟 - 这就是我继续使用 Eclipse 的原因。

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

这在 Android Studio 上可行吗?
如果是这样,你能解释一下怎么做吗?

注意:Lib 结构有点复杂。
例如,一些库正在使用其他库等。

【问题讨论】:

  • 当然是的。在Android studio 中,您可以创建一个Module(Just Lib) 并在任何项目中使用它
  • Android Studio 是否有机会自动检测这些模块,还是我必须在 android studio 中重新创建每个项目?

标签: android eclipse android-studio gradle


【解决方案1】:

在 Android Studio 中,您也可以使用库模块,而无需在不同项目中复制源代码。 还将项目从 Eclipse 迁移到 Android Studio 检查是否可以用 maven 依赖项替换相同的库或 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')

注意:你必须引用Project0中的library文件夹,而不是Project0的根文件夹。

Project1/app/build.gradle

dependencies {
   compile project(':library')
}

【讨论】:

  • 我尝试测试您的解决方案,创建了两个新项目并逐步应用您的解决方案。当我添加 compile project(':library') 行时,我在最后阶段收到“错误:在 Android Studio 中找不到名称为 'default' 的配置”。
  • 您正在使用顶级build.gradle 文件中的android 块,或者您将项目引用到Project0 的主根目录而不是Project0/library
  • 感谢您的回答,顶级build.gradle 没有被修改,并且其中没有android 块。我的项目本身就是一个库,所以我这样写,include ':Project0' project(':Project0').projectDir = new File('../Project0/')
猜你喜欢
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 2016-05-06
  • 2017-07-31
  • 1970-01-01
  • 2011-11-24
  • 1970-01-01
  • 2015-12-25
相关资源
最近更新 更多