React Native Android构建报错:kotlin.ExperimentalStdlibApi标注问题求助
React Native Android构建报错:ExperimentalStdlibApi缺失问题
问题描述
Android构建时出现以下错误:
/node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/BundleHermesCTask.kt: (137, 11): This declaration is experimental and its usage must be marked with '@kotlin.ExperimentalStdlibApi' or '@OptIn(kotlin.ExperimentalStdlibApi::class)'
错误出现在getBundleCommand函数中,手动给该函数添加@OptIn(ExperimentalStdlibApi::class)注解能临时解决,但修改node_modules文件会在npm install后被覆盖,且已尝试检查Java版本、对齐依赖版本、更新React Native等常规方法无效。
可行解决方案
1. 用patch-package持久化补丁(临时救急首选)
- 安装依赖:
npm install patch-package --save-dev - 手动修改
node_modules/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/tasks/BundleHermesCTask.kt,在报错函数上方添加@OptIn(ExperimentalStdlibApi::class) - 执行命令生成补丁:
npx patch-package react-native-gradle-plugin - 将生成的
patches文件夹提交到版本控制,后续执行npm install时会自动应用该补丁,无需重复修改
2. 调整依赖版本(长期根治方案)
- 该错误多因
react-native-gradle-plugin与项目Kotlin版本不兼容导致,检查项目根目录build.gradle中的Kotlin版本,确保与插件要求的版本匹配 - 升级React Native到最新稳定版(如0.72及以上),新版本通常已修复此类兼容性问题
- 若暂时无法升级RN,可在
package.json中锁定react-native-gradle-plugin到已知兼容的版本,例如:"dependencies": { // ... 其他依赖 "react-native-gradle-plugin": "0.72.6" }
3. Gradle全局配置绕过实验性API检查
在项目根目录的build.gradle中添加全局编译参数,让Kotlin编译器自动允许使用该实验性API:
subprojects { tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { freeCompilerArgs += ["-Xopt-in=kotlin.ExperimentalStdlibApi"] } } }
此方法无需修改插件源码,但需注意实验性API可能存在的兼容性风险。
内容的提问来源于stack exchange,提问作者Anthony
相关产品推荐
相关产品推荐

