Android Gradle应用程序和库jar冲突
我想将一个大型应用程序从Ant迁移到Gradle。 由于应用程序被(错误地)创建为多个库,第一次迁移将保留相同的模块(它将在第二步中重构),并且它可能会以这种结构结束: -- Project/ |-- App/ |-- libs/ |-- src/... |-- build.gradle |-- Module1/ |-- libs/ |-- lib1.jar |-- lib2.jar |-- src/... |-- build.gradle |-- Module2/ |-- libs/ |-- lib2.jar |-- lib3.jar |-- src/... |-- build.gradle build.gradle settings.gradle --计划/ |--应用程序/ |--自由基/ |--src/。。。 |--格雷德尔先生 |--模块1/ |--自由基/ |--lib1.jar |--lib2.jar |--src/。。。 |--格雷德尔先生 |--模块2/ |--自由基/ |--lib2.jar |--lib3.jar |--src/。。。 |--格雷德尔先生 格雷德尔先生 格雷德尔酒店 应用程序build.gradle如下所示: ... apply plugin: 'com.android.application' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:20.0.0' compile 'com.android.support:appcompat-v7:20.0.0' compile project(':Module1') compile project(':Module2') } ... ... apply plugin: 'com.android.library' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:20.0.0' compile 'com.android.support:appcompat-v7:20.0.0' } ... ... 应用插件:“com.android.application” 依赖关系{ 编译文件树(目录:“libs”,包括:['*.jar']) 编译'com.android.support:support-v4:20.0.0' 编译'com.android.support:appcompat-v7:20.0.0' 编译项目(“:Module1”) 编译项目(“:Module2”) } ... 然后每个模块build.gradle都将是这样的: ... apply plugin: 'com.android.application' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:20.0.0' compile 'com.android.support:appcompat-v7:20.0.0' compile project(':Module1') compile project(':Module2') } ... ... apply plugin: 'com.android.library' dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:20.0.0' compile 'com.android.support:appcompat-v7:20.0.0' } ... ... 应用插件:“com.android.library” 依赖关系{ 编译文件树(目录:“libs”,包括:['*.jar']) 编译'com.android.support:support-v4:20.0.0' 编译'com.android.support:appcompat-v7:20.0.0' } ... 每个模块都可以正确编译,但问题发生在构建APK时,因为lib2.jar被复制了2次,导致错误: 错误:梯度:任务“:app:packageDebug”的执行失败 在APK META-INF/ASL2.0中复制的重复文件 然后是通往两个罐子的路 我如何告诉Gradle在从每个模块构建APK时不要多次复制相同的JAR? 目前,我无法将依赖项转移到Maven central repo,即使我将来会这样做。Android Gradle应用程序和库jar冲突,android,jar,gradle,Android,Jar,Gradle,我想将一个大型应用程序从Ant迁移到Gradle。 由于应用程序被(错误地)创建为多个库,第一次迁移将保留相同的模块(它将在第二步中重构),并且它可能会以这种结构结束: -- Project/ |-- App/ |-- libs/ |-- src/... |-- build.gradle |-- Module1/
也许在父应用程序中添加所有LIB?这对我来说不是很好。。。在这种情况下,如何在build.gradle模块中指定依赖项?在gradle项目文件中,您可以将其添加到“android”块中:
META-INF/ASL2.0文件似乎正在复制。您是否尝试过这种方式:tools.android.com/tech-docs/new-build-system/tips(最后一段)?