React Native项目升级Android SDK 33至35构建失败求助
解决React Native 0.70.2升级Android SDK 35时的Kotlin版本不兼容问题
你的问题核心是RN 0.70.x默认依赖Kotlin 1.6,但升级到Gradle 8.1.1后,react-native-gradle-plugin拉取了Kotlin 1.8编译的二进制文件,导致版本冲突。以下是无需升级RN主版本的可行方案:
1. 统一项目Kotlin版本到兼容Gradle 8.x的版本
在项目根目录的android/build.gradle中,明确指定Kotlin版本并添加插件依赖:
buildscript { ext { kotlinVersion = "1.8.22" // Gradle 8.x推荐的兼容Kotlin版本 compileSdkVersion = 35 targetSdkVersion = 35 // 保留你原有的其他配置(比如minSdkVersion等) } dependencies { classpath("com.android.tools.build:gradle:8.1.1") // 添加Kotlin Gradle插件依赖 classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}") // 保留原有的其他classpath依赖(比如react-native相关) } }
2. 强制统一依赖版本,消除冲突
在android/build.gradle的allprojects块中,添加版本解析策略,强制react-native-gradle-plugin和Kotlin相关依赖使用指定版本:
allprojects { repositories { // 保留你原有的仓库配置(google()、mavenCentral()等) } configurations.all { resolutionStrategy { // 强制使用适配RN 0.70.x的react-native-gradle-plugin版本 force "com.facebook.react:react-native-gradle-plugin:0.70.15" // 统一所有Kotlin相关依赖版本 force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${kotlinVersion}" force "org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}" } } }
3. 确保App模块应用Kotlin插件
在android/app/build.gradle顶部,确认已应用Kotlin插件:
apply plugin: "com.android.application" apply plugin: "kotlin-android" // 必须添加这一行 apply plugin: "com.facebook.react"
4. 清理缓存并重新构建
执行以下命令彻底清理缓存,避免旧依赖干扰:
# 清理npm缓存并重装依赖 npm cache clean --force rm -rf node_modules package-lock.json npm install # 清理Android构建缓存 cd android ./gradlew clean cd .. # 重新构建项目 npx react-native run-android
5. 适配Firestore等第三方依赖
检查package.json中的Firestore依赖版本,确保其支持Android SDK 35和Kotlin 1.8。例如,@react-native-firebase/firestore可升级到18.7.0(该版本兼容RN 0.70.x和SDK 35),修改版本后重新执行npm install。
内容的提问来源于stack exchange,提问作者Gareth
相关产品推荐
相关产品推荐

