我正在尝试找出如何明确选择Android gradle构建所产生的.apk
中包含哪些二进制文件。
我有一个项目,其依赖项具有文件libc++_shared.so
的不同版本。打包构建输出时,这会导致冲突,因为cradle不知道要选择哪个文件。
但是,pickFirst
打包选项选择文件的“错误”副本。也就是说,依赖项A
和依赖项B
都包含文件。我知道我想要依赖项A
附带的版本,但是如果我在build.gradle
中包含以下配置以确保生成运行:
packagingOptions {
pickFirst('lib/x86/libc++_shared.so')
}
它始终是依赖项B
的副本,将其打包。
我真正想做的是exclude
中的文件B
。我可以在gradle文档和示例在线中看到如何排除传递依赖,但不能以这种方式排除嵌入式二进制。
有问题的两个依赖项是:
反应原生0.59.2 MyScript iink 1.3.0(http://myscript.com)
在我的顶级build.gradle
中,依赖项包括:
dependencies {
// From node_modules
implementation 'com.facebook.react:react-native:+'
// MyScript iink dependency is transitive through this
implementation project(path: ':UIReferenceImplementation')
}
是否可以通过命名或排除我不想的副本来准确指定要打包的libc++_shared.so
的副本?