我在中有一个android项目Android Studio 2.3.0 beta4 ,它依赖于库项目 CoolLib 。
CoolLib 的源位于其libs文件夹中的jar文件 coolLib.jar 中。 coolLib.jar 包含文件 {pkg}/BuildConfig.class 。
当我尝试在Android API-22 +的设备/仿真器中构建并运行项目时,它可以完美运行,但是当我尝试在API版本无法使生成异常(exception)-
项目的build.gradle包含以下版本的支持lib等。-
ext {
supportLibVer = '25.1.1'
playServiceVer = '10.0.1'
buildToolsVer = "25.0.2"
compileSdkVer = 25
targetSdkVer = 25
minSdkVer = 16
}
dependencies {
compile files('libs/FLurry_3.2.2.jar')
compile files('libs/jxl-2.6.12.jar')
compile project(':CoolLib')
compile files('libs/gcm.jar')
compile "com.google.android.gms:play-services-ads:$playServiceVer"
compile "com.android.support:appcompat-v7:$supportLibVer"
compile "com.android.support:design:$supportLibVer"
compile "com.android.support:cardview-v7:$supportLibVer"
compile "com.android.support:support-v13:$supportLibVer"
compile 'com.github.bumptech.glide:glide:3.7.0'
}
最佳答案
好的,我找到了解决方案。
为什么-
我比较了在gradle控制台中API22(构建成功)和API16(构建失败)的构建步骤。在API22,控制台说-
..并且构建成功。当我禁用InstantRun时,它在API22上也失败。
原因-
问题出在proguard配置中。 coolLib.jar 的 BuildConfig.class 定义为保留在 proguard-project.txt 中,因此它将所有 .class 文件保留在该包中,但 BuildConfig.class ojit_r必须在该包中根据主要项目的建立时间。
解决方案-
我删除了 -keep 语句,它的工作原理很吸引人。
关于android - (重复的zip条目[coolLib.jar :{pkg}/BuildConfig.类]),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42160084/