我有两个Android的Gradle模块,一个是库,一个是应用程序,应用程序依赖于这个模块,如下所示:compile project(path ':library' configuration: 'debug')
问题是两个模块都使用JNI,所以它们都从NDK打包libc++_shared.so,导致:
com.android.build.api.transform.TransformException:
com.android.builder.packaging.DuplicateFileException:
Duplicate files copied in APK lib/armeabi-v7a/libc++_shared.so我试过使用packagingOptions,但似乎我只能用它来完全排除该文件被打包,而不是从其他模块复制?
发布于 2018-01-06 05:45:29
您尝试过使用哪种类型的packagingOptions?可能吧,exlude?看起来pickFirst应该可以为您工作。在本例中,您显式地告诉Gradle您知道这个问题,并接受这些文件中的任何一个。根据您支持的体系结构,您可能只需要其中一些行。您可以找到详细信息in documentation
android {
// some stuff
packagingOptions {
pickFirst 'lib/armeabi-v7a/libgnustl_shared.so'
pickFirst 'lib/arm64-v8a/libgnustl_shared.so'
pickFirst 'lib/x86_64/libgnustl_shared.so'
pickFirst 'lib/x86/libgnustl_shared.so'
}
}https://stackoverflow.com/questions/46103055
复制相似问题