You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Gradle升级后Kotlin版本不兼容及版本来源问询

React Native Android构建Kotlin版本不兼容问题解析

问题原因

  • 版本对齐冲突:你使用的Gradle 8.5自带的Kotlin标准库版本为1.9.20,但@react-native/gradle-plugin默认使用低于1.9.0的Kotlin版本编译。构建时,插件中的kotlin.reflect.KClass类是用1.9.0版本编译的,而项目预期的是1.7.1版本,导致二进制元数据版本不匹配,触发编译错误。
  • 手动修改插件内部的build.gradle.kts能解决问题,是因为强制插件使用1.9.0版本编译,与Gradle自带的标准库版本对齐,消除了版本差异。

插件Kotlin版本的来源

@react-native/gradle-plugin中的Kotlin版本是插件开发者在构建插件时定义的固定值,打包发布到npm时已写入插件包内的build.gradle.kts文件中,默认不会读取你项目本地的Kotlin版本配置,所以你修改项目的build.gradle或gradle.properties无法覆盖这个值。

无需手动修改node_modules的解决方案

你可以通过Gradle的依赖解析策略,强制所有模块(包括第三方插件)统一使用指定的Kotlin版本,避免手动修改依赖包:

Groovy DSL(项目根目录build.gradle)

allprojects {
    configurations.all {
        resolutionStrategy {
            force "org.jetbrains.kotlin:kotlin-stdlib:1.9.20"
            force "org.jetbrains.kotlin:kotlin-reflect:1.9.20"
            force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20"
        }
    }
}

Kotlin DSL(项目根目录build.gradle.kts)

allprojects {
    configurations.all {
        resolutionStrategy {
            force("org.jetbrains.kotlin:kotlin-stdlib:1.9.20")
            force("org.jetbrains.kotlin:kotlin-reflect:1.9.20")
            force("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.20")
        }
    }
}

另外,也可以尝试升级React Native到适配Gradle 8.5的最新稳定版本,官方通常会在新版本中修复这类依赖版本兼容问题。

内容的提问来源于stack exchange,提问作者Ross Thain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 10:07:38