升级JDK11与compileSdkVersion31后React Native安卓无法启动报错
解决方案
1. 调整JDK版本适配
RN 0.59.10原生基于JDK 8开发,直接用JDK 11会触发构建兼容性问题,可通过两种方式修正:
- 打开Android Studio的「File > Project Structure」,在SDK Location里指定JDK 8的安装目录;
- 或在项目根目录的
gradle.properties中添加配置:org.gradle.java.home=/path/to/your/jdk8
2. 修正Android编译配置(优先降级compileSdk)
RN 0.59.10对compileSdk 31的支持完全不完善,建议先回退到兼容版本:
- 打开
android/build.gradle,修改配置:compileSdkVersion 29 buildToolsVersion "29.0.3" - 同步修改
android/app/build.gradle里的targetSdkVersion为29:targetSdkVersion 29
如果坚持要用compileSdk 31,需升级Android Gradle Plugin到7.0+,但RN 0.59.10会出现大量兼容性报错,不推荐。
3. 检查Android SDK路径与依赖
- 打开
local.properties文件,确认sdk.dir指向正确的Android SDK路径,示例:sdk.dir=/Users/xxx/Library/Android/sdk - 在Android Studio的SDK Manager中,确保已安装对应版本的SDK Platform(比如compileSdk 29就装Android 10的SDK)和Build Tools 29.0.3。
4. 清理缓存后重建项目
执行以下命令清理缓存并重启项目:
# 进入安卓目录清理gradle缓存 cd android ./gradlew clean # 返回根目录清理npm缓存 cd .. npm cache clean --force # 重新启动项目 npx react-native run-android
额外提醒
RN 0.59.10是2019年的老旧版本,早已停止维护。后续若要适配新系统或升级依赖,建议逐步将RN版本升级到0.68+这类稳定版,避免跨版本升级带来的兼容性问题。
内容的提问来源于stack exchange,提问作者Ville Miekk-oja
相关产品推荐
相关产品推荐

