我使用https://github.com/pfn/android-sdk-plugin与Scala构建我的Android应用程序。当我运行sbt android:package
时,我得到了这个错误:
com.android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/LICENSE
File 1: ...ivy2cacheorg.apache.httpcomponentshttpcorejarshttpcore-4.0.1.jar
File 2: ...ivy2cacheorg.apache.httpcomponentshttpcorejarshttpcore-4.0.1.jar
我搜索了一会儿,人们说我可以设置一个packageOptions
来排除许可证。但是我是Scala的新手,不知道怎么做。
apkbuildExcludes in Android += "META-INF/LICENSE.txt"
在你的例子中是"META-INF/LICENSE"。
https://github.com/pfn/android-sdk-plugin查看新功能部分
来自https://code.google.com/p/android/issues/detail?id=61573#c14的一个技巧解决了我的问题:
find .../path/to/package/caches/ -iname "*.jar" -exec zip -d '{}' 'META-INF/*' ;
在gradle中他们有:
android {
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}
可能是插件可以做packageOptions in Adroid += exclude("...")
?因为我已经应用了这个技巧,所以我不能再验证这个想法了。