我一直在使用Gradle Android插件v0.12,但我决定升级到新版本,因为我需要新功能(并且改进的速度总是加分)。
更新到新的v0.13.1后,我不断获得"重复的Zip条目" (来自Proguard)虽然一切顺利。完整错误:
java.io.IOException:无法写[/Users/.../classes-proguard/netherlands/release/classes.jar](无法阅读[/Users/.../ .gradle /缓存/模块-2 /文件-2.1 / org.apache.commons /公地IO / 1.3.2 / b6dde38349ba9bb5e6ea6320531eae969985dae5 /公地IO-1.3.2.jar(;;;;;;!META-INF / MANIFEST.MF)](重复的zip条目[commons-io-1.3.2.jar:org / apache / commons / io / CopyUtils.class]))(之前的CopyUtils是FileUtils)。
我使用以下包装选项:packagingOptions
{
exclude 'AndroidManifest.xml'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/MANIFEST.MF'
exclude '!META-INF/MANIFEST.MF'
exclude 'META-INF/services/javax.annotation.processing.Processor'
}
正如您所知,我排除了清单文件......
为了测试它,我改回了版本0.12.0并且一切都再次工作,回到0.13。*并且它中断了(但我需要0.13。*)!
此外,我使用以下库:
有没有人遇到这个问题?如果是这样,任何人都可以帮助我(现在已经在这个问题上打了两天头脑!)?谢谢!
答案 0 :(得分:15)
更新到Android Gradle插件0.13时遇到了同样的问题。我设法通过在我的retrofit
文件中包含build.gradle
来修复它:
compile('com.squareup.retrofit:retrofit:1.6.1') {
exclude group: 'commons-io', module: 'commons-io'
}
修改并且可以同时对所有retrofit
和robospice
个依赖项执行此操作:
compile('com.octo.android.robospice:robospice-retrofit:1.4.14') {
exclude group: 'commons-io', module: 'commons-io'
}
它将自动获取所有底层依赖项(retrofit
,robospice-core
,robospice-cache
,...)。
答案 1 :(得分:15)
我有同样的问题。在我的情况下,我没有做几个月的构建,并发现依赖compile 'org.apache.commons:commons-io:1.3.2'
不再有效(虽然我猜这些罐子仍在我的本地存储库中)。
一旦我将其更改为compile 'commons-io:commons-io:1.3.2'
,proGuard运行正常。
答案 2 :(得分:1)
通过使用CjS答案,我能够解决这个问题。即使是Gaetan答案也有效。
添加到此 如果你的compileSdkVersion是19(在我的情况下)
,我通过使用这个解决了问题$scope.$on("calendarValue", function(e, data) {
console.log(data.foo === "bar");
$scope.selectedValue = data.value;
});
否则,如果您的compileSdkVersion为23 然后使用
compile ('org.apache.httpcomponents:httpmime:4.3'){
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
compile ('org.apache.httpcomponents:httpcore:4.4.1'){
exclude group: 'org.apache.httpcomponents', module: 'httpclient'
}
compile 'commons-io:commons-io:1.3.2'
答案 3 :(得分:-4)
问题出在您正在使用的库中。
添加gradle文件:
android {
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/notice.txt'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/MANIFEST.MF'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
}