如何从Gradle项目依赖中排除重复的本地库?

4
我有两个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,但似乎只能完全排除该文件从所有打包中被打包,而不能仅仅从其他模块中复制?

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
3
你尝试使用了什么类型的packagingOptions?可能是exlude吗?看起来pickFirst对你有用。在这种情况下,您明确告诉Gradle您知道问题并接受其中任何文件。根据您支持的体系结构,您可能只需要其中一些行。您可以在文档中找到详细信息。
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'
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,