每当我将android库项目作为模块添加到我的Android Studio项目时,源都会被复制到Android Studio项目文件夹中。
有没有办法像eclipse那样解决它,只有一个库项目的副本,任何很多项目都可以引用它?
答案 0 :(得分:8)
你有不同的方法来实现它:
案例1:
在项目中使用gradle和本地库,您可以参考外部模块。
只需使用:
Project
|__build.gradle
|__settings.gradle
|__app (application module)
|__build.gradle
在settings.gradle
:
include ':app'
include ':myLib'
project(':myLib').projectDir=new File('pathLibrary')
在app/build.gradle
:
dependencies {
compile project(':myLib')
}
注意myLib 您必须在另一个项目中使用库的路径,而不是项目的根。
案例2:
编译库模块,获取 aar文件,然后添加到主项目中:
添加将aar文件放在存储库中的文件夹:
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
然后添加依赖项:
dependencies {
compile(name:'nameOfAarFile', ext:'aar')
}
案例3: 另一种方法是将您的模块发布到maven存储库。
通过这种方式,只需使用:
dependencies {
compile ('mypackage:mymodule:X.Y.Z')
}
答案 1 :(得分:3)
我会将您的共享代码编译为库项目。所以你会得到一个你可以参考的aar文件。
要创建Android Archive,您需要使用以下命令将项目构建为发布版本:
gradlew aR
之后,您有一个名为<modulename>-release.aar
的文件,此文件位于<projectroot>/<modulename>/build/outputs/aar
。我将这些文件重命名为<modulename>.aar
,然后您可以将它放入模块的lib目录中。
完成后,您可以从您需要的模块中引用它,如下所示:
compile(name:'<modulename>', ext:'aar')
这也加快了构建时间,因为您不再需要编译项目。