gpt4 book ai didi

android - 如何从 Gradle 项目依赖项中排除重复的 native 库?

转载 作者:太空狗 更新时间:2023-10-29 13:07:19 24 4
gpt4 key购买 nike

我有两个适用于 Android 的 Gradle 模块,一个是库,一个是应用程序,应用程序依赖于模块,如下所示:compile project(path ':library' configuration: 'debug' )

问题是两个模块都使用了JNI,所以都封装了libc++_shared.so 来自 NDK,导致:

com.android.build.api.transform.TransformException:
com.android.builder.packaging.DuplicateFileException:
Duplicate files copied in APK lib/armeabi-v7a/libc++_shared.so

我尝试使用 packagingOptions,但似乎我只能使用它来完全排除该文件被打包,而不仅仅是从其他模块复制?

最佳答案

您尝试使用哪种类型的packagingOptions?可能是排除?看起来 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'
}
}

关于android - 如何从 Gradle 项目依赖项中排除重复的 native 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46103055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com