我正在开发一个Android应用程序,我最近从Eclipse迁移到Android Studio和Gradle。
在我的预测中,我创建了5个UI Libs,并将它们作为模块添加到我的项目中,我创建的库被推送到我的github帐户(公开)。
在eclipse中为标记为lib的项目添加外部依赖项时,当您更新外部项目的代码然后清理构建时,您的项目会获得这些更新,但在Gradle中我注意到它创建了Physical Copies,完全独立于他们的来源,我的问题是如何只更改外部库并让我的项目更新。
这是从我的gradle的配置中剪掉的:
dependencies {
// Libraries
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:5.0.89'
.
.
.
compile 'com.squareup.picasso:picasso:2.4.0'
// Projects
compile project(':com.shehabic.helpicon')
.
.
}
答案 0 :(得分:1)
我读过这个不推荐但是它适用于调试:
档案>项目结构......>加号以添加模块
“创建新模块”对话框:
返回“项目结构”对话框:
这确实会在您的Android项目中创建一个包的副本,但它也会生成所有必要的信息和文件,您可以随时删除副本或单独使用。
您的模块已添加到settings.gradle文件中:
':app', ':module_name'
已创建模块的build.gradle文件:
configurations.maybeCreate("default")
artifacts.add("default", file('package.jar'))
依赖项已添加到“:app”的build.gradle中:
compile project(':module_name')
configurations.maybeCreate("default")
artifacts.add("default", file('X:\Java\Applications\YourApplication\dist\package.jar'))
无论您在何处编辑包,只需“清理并构建”它。 每当您希望您的应用程序从Android项目外部反映包中的“更新”时,只需同步即可。 完成调试后,可以删除模块,依赖项和旧副本,并将包的最后一个版本作为副本添加。
答案 1 :(得分:0)
您不得将外部库添加为模块。它会在项目文件夹下复制它。
你要做的是:
1)删除当前项目中的库文件夹。 2)打开'seeting.gradle'文件并添加以下内容:
include ':your_external_library_module_name', ':perhaps_second_external_library'
project (':your_external_library_module_name').projectDir = new File('../path/to/your/external/library')
project (':perhaps_second_external_library').projectDir = new File('../path/to/your/second/external/library')
2)在'build.gradle'文件中添加依赖项:
dependencies {
compile project(':your_external_library_module_name')
compile project(':perhaps_second_external_library')
}
3)同步项目,你就完成了。
答案 2 :(得分:0)
请勿使用Studio的“打开模块设置”添加模块。
只需将子库的AAR文件的完整路径添加到子应用程序的构建gradle中:
实施文件('/workspace/AndroidAppsBase/base_app/build/outputs/aar/base_app-debug.aar')
当您对库项目进行更改并重建项目时,将创建一个新的.aar文件。要反映您的子项目中的更改,只需对其进行重建。