如何排除sbt-android-sdk插件中的LICENSE文件



我使用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("...") ?因为我已经应用了这个技巧,所以我不能再验证这个想法了。

最新更新