执行gradlew assembleRelease打包Android APK时遇Kotlin编译报错求助
执行gradlew assembleRelease打包Android发布版APK时,出现以下报错:
Task :react-native-gradle-plugin:compileKotlin FAILED
e: D:\Abd El-Rahman\TijaryStockApp\TijaryStockApp\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)'
以下是几种可行的解决办法:
方案一:升级React Native版本
该报错多因react-native-gradle-plugin依赖的Kotlin特性版本不兼容导致,升级React Native到稳定版本(如0.72及以上)可修复此问题。执行命令:npm install react-native@latest # 或使用yarn yarn add react-native@latest升级完成后重新执行打包命令。
方案二:手动为报错文件添加OptIn注解
直接修改报错的插件文件:- 打开路径
D:\Abd El-Rahman\TijaryStockApp\TijaryStockApp\node_modules\react-native-gradle-plugin\src\main\kotlin\com\facebook\react\tasks\BundleHermesCTask.kt - 在文件顶部package声明之后,添加注解:
或者直接给第137行对应的函数/类添加该注解@OptIn(kotlin.ExperimentalStdlibApi::class) - 保存文件后重新执行
gradlew assembleRelease
- 打开路径
方案三:全局配置Kotlin编译参数
在项目gradle配置中全局启用ExperimentalStdlibApi:- 打开项目根目录的
build.gradle,确保Kotlin版本与React Native兼容,并配置:buildscript { ext { kotlinVersion = "1.8.22" // 使用与RN兼容的Kotlin版本 } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // 其他依赖配置... } } - 在
android/build.gradle中添加全局编译选项:allprojects { repositories { // 仓库配置... } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { freeCompilerArgs += ["-opt-in=kotlin.ExperimentalStdlibApi"] } } } - 同步gradle配置后重新执行打包命令。
- 打开项目根目录的
内容的提问来源于stack exchange,提问作者Abd ul rahaman Shalata

