React Native执行npm run android时mergeDebugResources失败求助
解决方案
1. 修复Android Gradle Plugin (AGP) 与 compileSdk 版本不匹配问题
AGP 7.0.4 仅支持最高 compileSdk 31,你当前使用的 compileSdk 33 超出了它的兼容范围,这会引发兼容性警告,甚至间接导致资源合并错误。可以二选一调整:
方式一:降低 compileSdk 版本到 31
打开项目根目录下的 android/build.gradle 文件,修改 compileSdkVersion:
buildscript { ext { compileSdkVersion = 31 // 从33改为31 // 其他配置保持不变 } }
方式二:升级 AGP 版本到支持 compileSdk 33 的版本
AGP 7.1.0+ 支持 compileSdk 33,修改 android/build.gradle 中的 AGP 版本:
buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.1.3' // 从7.0.4改为7.1.3 } }
同时匹配 gradle wrapper 版本(AGP7.1.x 需要 gradle 7.2+),修改 android/gradle/wrapper/gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip
2. 解决 material-1.9.0 资源宏类型识别失败问题
该错误源于 material 1.9.0 引入的 Material 3 资源与 React Native 0.68.2 的资源系统不兼容,可通过以下方式处理:
强制统一 material 库版本
在 android/build.gradle 的 allprojects 块中添加依赖强制规则,将 material 版本降级到与 RN 0.68.2 兼容的 1.7.0:
allprojects { repositories { // 现有仓库配置保留 } configurations.all { resolutionStrategy { force 'com.google.android.material:material:1.7.0' } } }
清理缓存并重新构建
完成上述修改后,执行以下命令清理缓存、重新编译:
cd android ./gradlew clean cd .. npm run android
额外检查
- 若模拟器仍有运行问题,可尝试切换到 API 31 的模拟器,与修改后的 compileSdk 版本保持一致。
- 可通过
./gradlew app:dependencies命令查看依赖树,排查是否有第三方库强制引入了高版本 material 库。
内容的提问来源于stack exchange,提问作者Hari
相关产品推荐
相关产品推荐

