M1运行React Native安卓构建失败:work-runtime的minCompileSdk(31)高于项目compileSdk(30)
错误原因
该报错是依赖库的最低编译SDK要求与项目当前编译SDK版本不匹配导致:androidx.work:work-runtime:2.7.0-beta01 要求最小编译SDK版本为31,但你项目当前配置的compileSdkVersion为30,因此触发构建失败,该问题和设备搭载的M1芯片无关联。
解决方案
方案一:升级项目编译SDK版本(推荐)
直接修改项目根目录下android/build.gradle的版本参数即可:
buildscript { ext { buildToolsVersion = "31.0.0" // 从30.0.0升级到31对应的版本 minSdkVersion = 21 compileSdkVersion = 31 // 从30升级到31 targetSdkVersion = 31 // 可选同步升级,避免后续其他兼容问题 supportLibVersion = "28.0.0" } // 其余原有配置保持不变 }
修改完成后重新执行npx react-native run-android即可,该方案不会影响旧设备兼容性,编译SDK版本和应用运行时的最低支持系统版本无关联。
方案二:强制锁定work-runtime依赖的低版本
如果暂时不想升级编译SDK版本,可以在android/build.gradle的allprojects配置块中添加强制依赖规则,覆盖自动引入的高版本work-runtime:
allprojects { // 原有repositories配置保持不变 configurations.all { resolutionStrategy { force 'androidx.work:work-runtime:2.6.0' } } }
2.6.0版本的work-runtime要求的minCompileSdk为30,和你当前项目配置完全匹配,修改完成后重新构建即可。
内容的提问来源于stack exchange,提问作者Oliver D
相关产品推荐
相关产品推荐

