gradlew assembleDebug构建APK失败:react-native-gradle-plugin编译报错
解决React Native构建时Kotlin ExperimentalStdlibApi编译错误
你遇到的问题是react-native-gradle-plugin中的代码使用了Kotlin实验性标准库API,但未添加对应的@OptIn注解,加上Java 17对这类API的检查更严格,导致编译失败。以下是几个可行的解决办法:
方案一:升级react-native-gradle-plugin版本
- 新版本插件通常会修复这类注解缺失的兼容性问题,先确认你的React Native版本对应的gradle-plugin版本,在
package.json中更新react-native-gradle-plugin到匹配的稳定版,执行npm install或yarn install后重新构建。
方案二:全局添加Kotlin编译参数
在项目根目录的build.gradle文件中,为所有子项目的Kotlin编译任务添加允许使用实验性API的参数:
buildscript { dependencies { // 确保Kotlin插件版本与Gradle 7.3兼容,推荐1.6.x系列 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21" } } subprojects { tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { freeCompilerArgs += [ "-Xopt-in=kotlin.ExperimentalStdlibApi" ] } } }
方案三:降级Java版本(临时方案)
Java 17对实验性API的校验规则更严格,暂时降级到Java 11或8可以绕过该问题:
- 在项目的
gradle.properties中指定JDK路径:
org.gradle.java.home=/path/to/your/java11/or/java8
- 或者在IDE的项目设置中,将JDK版本切换为Java 11或8。
方案四:确认Gradle与插件版本匹配
Gradle 7.3需要搭配兼容的Kotlin Gradle插件版本,建议使用Kotlin 1.6.x系列,避免版本不匹配导致的编译问题。
内容的提问来源于stack exchange,提问作者Fullstack Developer
相关产品推荐
相关产品推荐

