React Native升级后Android构建失败:gradle-plugin:compileKotlin在Kotlin 1.8和Gradle 8.3环境下报错
React Native升级后Android构建失败:gradle-plugin:compileKotlin在Kotlin 1.8和Gradle 8.3环境下报错
我太懂这种升级后iOS顺畅跑起来、Android却突然卡壳的糟心感了!你跟着升级助手调整了Kotlin和Gradle版本,结果卡在compileKotlin阶段,大概率是版本匹配、旧缓存干扰或者第三方依赖兼容性的问题,我给你整理几个实用的排查和解决步骤:
1. 先确认核心配置的版本对应关系
React Native 0.73.11对Gradle、Kotlin和Android构建工具的版本有明确匹配要求,先检查android/build.gradle里的配置是否准确:
buildscript { ext { buildToolsVersion = "34.0.0" compileSdkVersion = 34 kotlinVersion = "1.8.0" // 确保这里是1.8.0 } dependencies { // Gradle 8.3 必须对应这个插件版本,别搞错 classpath("com.android.tools.build:gradle:8.2.0") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${ext.kotlinVersion}") } }
同时检查android/gradle/wrapper/gradle-wrapper.properties里的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
2. 彻底清理缓存,排除旧缓存干扰
升级版本后旧缓存很容易导致各种奇奇怪怪的问题,直接一套清理命令走到底:
# 进入Android目录 cd android # 清理Gradle缓存 ./gradlew clean ./gradlew cleanBuildCache # 回到根目录清理RN和npm缓存 cd .. rm -rf node_modules npm install npx react-native clean
3. 同步Java与Kotlin的编译配置
React Native 0.73默认要求Java 17,如果你之前用的是Java 11,必须同步更新android/app/build.gradle里的编译选项:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" // 解决旧Kotlin语法和新版本的兼容性冲突 freeCompilerArgs += ["-Xjvm-default=all"] } }
4. 排查第三方依赖的兼容性问题
很多老的RN第三方原生模块还没适配Kotlin 1.8,这是compileKotlin报错的高频原因:
- 执行
cd android && ./gradlew app:dependencies查看依赖树,找出那些依赖旧版Kotlin的库 - 优先升级这些库到最新适配版本;如果找不到适配版本,可以在
android/build.gradle里添加强制版本配置,统一所有依赖的Kotlin版本:subprojects { project.configurations.all { resolutionStrategy { force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0" force "org.jetbrains.kotlin:kotlin-reflect:1.8.0" } } }
5. 确认SDK组件安装完整
在Android Studio的SDK Manager里,务必确认安装了:
- Android 13 (Tiramisu)的SDK Platform
- Android SDK Build-Tools 34.0.0
如果以上步骤都试了还是报错,建议执行cd android && ./gradlew assembleDebug --stacktrace获取详细的错误日志,里面会明确指出是哪个模块、哪行代码导致的编译失败,方便精准定位问题。
内容来源于stack exchange
相关产品推荐
相关产品推荐

