react-native-screens:compileDebugKotlin构建失败解决方法
react-native-screens 编译失败(Kotlin编译报错+Gradle 8.0不兼容提示)解决方案
这个报错的核心触发原因是react-native-screens依赖的Kotlin版本、Gradle版本与当前RN项目内置的版本不匹配,提示的Gradle 8.0兼容警告是构建过程的伴随输出,不是核心错误点,按以下顺序操作即可解决:
1. 全局统一Kotlin版本(最高优先级操作,覆盖90%以上同类报错)
RN默认不会强制所有三方原生依赖使用统一的Kotlin版本,新版react-native-screens对Kotlin版本有明确最低要求:
- 3.20.0及以上版本要求Kotlin ≥ 1.8.0
- 3.25.0及以上版本要求Kotlin ≥ 1.9.0
操作步骤: - 打开项目路径下的
android/build.gradle文件 - 在
buildscript的ext配置块中添加全局Kotlin版本声明,版本号和当前项目的Gradle版本匹配即可:
buildscript { ext { // 保留原有所有配置,新增下面的版本声明 kotlinVersion = "1.8.22" // 适配Gradle 7.4-7.6,对应RN 0.70-0.72 // RN 0.73+ 可使用1.9.22版本 // kotlinVersion = "1.9.22" } }
- 进入
android目录执行./gradlew clean清空旧构建缓存,返回项目根目录重新执行构建命令即可。
2. 降级react-native-screens到适配低版本RN的稳定版
如果使用的RN版本低于0.70,直接安装最新版react-native-screens必然出现版本兼容问题,按对应RN版本安装适配的依赖版本即可:
- 先卸载当前不兼容的版本:
# yarn用户执行 yarn remove react-native-screens # npm用户执行 npm uninstall react-native-screens
- 安装对应适配版本:
# RN 0.68-0.69 适配版本 yarn add react-native-screens@3.18.2 # RN 0.65-0.67 适配版本 yarn add react-native-screens@3.13.1
- 同样执行Gradle清理命令后重新构建。
3. 修复Gradle兼容配置
如果前两步操作后仍然报Gradle 8.0兼容相关错误,检查两处配置:
- 打开
android/gradle.properties,添加以下配置关闭旧特性兼容校验、调整编译内存分配:
android.suppressUnsupportedCompileSdk=34 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
- 打开
android/gradle/wrapper/gradle-wrapper.properties,检查Gradle版本是否和RN版本匹配,不要手动跨大版本升级Gradle:RN 0.70-0.72对应Gradle 7.3-7.6,RN 0.73+对应Gradle 8.0+,低版本RN强行升级Gradle到8.0+会导致大量原生依赖编译失败。
注意:所有配置修改完成后必须先清理构建缓存再重新编译,否则旧的编译产物会导致新配置不生效,不要跳过clean步骤直接构建。
内容的提问来源于stack exchange,提问作者MIPB
相关产品推荐
相关产品推荐

