搭建Detox e2e测试框架执行detox build时出现androidx.appcompat依赖冲突
问题本质
这是Android项目典型的多依赖版本冲突问题,项目中引入的React Native本体、各类RN原生插件、Detox框架对androidx.appcompat:appcompat包的版本要求不匹配,同时debugRuntimeClasspath对该包设置了1.1.0-rc01的严格版本约束,其他依赖链的版本要求无法满足该约束,导致依赖解析失败构建卡住。
修复步骤
- 全局强制统一依赖版本
在安卓项目根目录的build.gradle文件的allprojects代码块中添加版本强制配置,选择所有依赖都兼容的正式版1.1.0,既满足Detox依赖的material 1.2.1的要求,也在OneSignal的兼容范围[1.0.0, 1.3.99]内:
allprojects { configurations.all { resolutionStrategy { force 'androidx.appcompat:appcompat:1.1.0' // 可同步统一其他易冲突的依赖,避免后续报错 force 'com.google.android.material:material:1.2.1' } } }
- 移除冗余约束
检查app模块下的build.gradle文件,确认是否手动设置了androidx.appcompat:appcompat的严格版本规则,如有可以删除,使用上方全局强制版本即可。 - 清理缓存重新构建
修改完成后依次执行以下命令清理缓存后再执行detox构建:
- 清理安卓构建缓存:
cd android && ./gradlew clean - 清空项目依赖缓存重装:
watchman watch-del-all && rm -rf node_modules && npm install - 重新执行detox构建命令:
detox build --configuration 你的配置名
备选方案
如果上述方案仍报错,可将强制的androidx.appcompat:appcompat版本替换为1.1.0-rc01,匹配当前的严格约束要求。
内容的提问来源于stack exchange,提问作者jakap
相关产品推荐
相关产品推荐

