React Native配置Detox测试因META-INF报错,常规构建正常如何解决?
问题根因
- 你之前添加的
packagingOptions仅作用于普通App构建,Detox触发的androidTest测试构建有独立的配置规则,默认不会复用主构建的打包排除规则 - 现有配置混用了单独
exclude语句和excludes数组赋值,后者会覆盖前者的配置,导致之前声明的META-INF/MANIFEST.MF排除规则实际未生效 - 第三方库级别的
packagingOptions优先级低于应用级配置,且默认不传递到测试变体,修改库配置无法解决测试构建的冲突
解决步骤
- 打开应用级build.gradle文件(路径一般为
android/app/build.gradle),在android代码块内补充测试构建专属的testPackagingOptions配置,同时修正原有packagingOptions的规则写法,避免混写导致规则覆盖:
android { // 保留原有其他配置不变 packagingOptions { excludes = [ 'META-INF/MANIFEST.MF', '**/libc++_shared.so', '**/libfbjni.so' ] } // 新增测试构建打包规则 testPackagingOptions { excludes = [ 'META-INF/MANIFEST.MF', '**/libc++_shared.so', '**/libfbjni.so' ] } }
- 执行项目清理命令后重新运行Detox构建即可:
cd android && ./gradlew clean
内容的提问来源于stack exchange,提问作者Amit
相关产品推荐
相关产品推荐

