首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Gradle项目依赖中排除重复的本机库?

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

Stack Overflow用户
提问于 2017-09-08 02:37:49
回答 1查看 1.1K关注 0票数 4

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

问题是两个模块都使用JNI,所以它们都从NDK打包libc++_shared.so,导致:

代码语言:javascript
复制
com.android.build.api.transform.TransformException:
com.android.builder.packaging.DuplicateFileException:
Duplicate files copied in APK lib/armeabi-v7a/libc++_shared.so

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

EN

回答 1

Stack Overflow用户

发布于 2018-01-06 05:45:29

您尝试过使用哪种类型的packagingOptions?可能吧,exlude?看起来pickFirst应该可以为您工作。在本例中,您显式地告诉Gradle您知道这个问题,并接受这些文件中的任何一个。根据您支持的体系结构,您可能只需要其中一些行。您可以找到详细信息in documentation

代码语言:javascript
复制
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'
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46103055

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档