如何优化将哪些二进制文件打包到Android版本中?

时间:2019-04-15 06:04:36

标签: android react-native gradle android-gradle

我正在尝试找出如何明确选择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的副本?

0 个答案:

没有答案