React Native旧项目运行报错:无法选择kotlin-gradle-plugin:1.8.10变体
React Native 旧项目启动构建失败(Kotlin 依赖兼容问题)
问题原因
react-native-async-storage 从1.18.0版本开始改用Kotlin实现,所以即使你的项目没直接引入Kotlin,这个第三方库会自动依赖Kotlin相关组件,导致构建时需要匹配的Kotlin Gradle插件和Java版本。你遇到的错误就是Java版本与Kotlin插件变体不兼容导致的。
解决步骤
方案一:适配Kotlin依赖与Java版本
配置根目录
build.gradle
打开项目根目录的build.gradle文件,更新构建脚本依赖:buildscript { ext { kotlinVersion = "1.8.10" // 和报错的插件版本保持一致 compileSdkVersion = 33 // 可根据项目实际情况调整 targetSdkVersion = 33 } repositories { google() mavenCentral() } dependencies { classpath "com.android.tools.build:gradle:7.4.2" // 适配Java11的Gradle插件版本 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // 添加Kotlin插件 } }配置app模块
build.gradle
在app/build.gradle顶部添加Kotlin插件引用:apply plugin: "com.android.application" apply plugin: "kotlin-android" // 新增该行统一Java版本配置
打开gradle.properties文件,确保Java版本设置为11:org.gradle.java.home=/path/to/your/jdk11 android.compileOptions.sourceCompatibility=11 android.compileOptions.targetCompatibility=11 org.gradle.jvmargs=-Xmx2048m --add-exports=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
方案二:降级react-native-async-storage到无Kotlin版本
如果你的项目Gradle版本过低,无法适配Java11,可以降级到不需要Kotlin的旧版本:
- 修改
package.json中的依赖:"react-native-async-storage/async-storage": "^1.17.11" - 重新安装依赖并清理缓存:
rm -rf node_modules && npm install cd android && ./gradlew clean
最后一步:清理缓存并重启项目
执行以下命令确保无缓存残留:
npm cache clean --force cd android && ./gradlew clean npx react-native run-android
内容的提问来源于stack exchange,提问作者peter piop
相关产品推荐
相关产品推荐

