You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

React Native项目升级Android Gradle Plugin及Gradle版本后构建失败求助

React Native项目升级Android Gradle Plugin及Gradle版本后构建失败求助

兄弟,我前段时间升级RN项目的AGP和Gradle时也踩过几乎一模一样的坑,给你整理几个亲测有效的解决步骤,应该能帮你搞定:

先理清版本对应关系

首先得明确,Android Gradle Plugin(AGP)和Gradle版本是强绑定的,RN版本也有推荐的配套版本:

  • 你当前用的RN 0.75.4官方推荐AGP 8.2.x + Gradle 8.3,但你要升级到Gradle 8.7的话,对应的AGP版本至少要8.5.x(AGP 8.5才支持Gradle 8.7+)

1. 手动解决AGP升级助手找不到版本的问题

因为你的项目用了buildSrc这类特性,升级助手识别不了,得手动修改AGP版本:

  • 如果是用buildSrc管理版本常量:打开buildSrc/src/main/kotlin下的版本配置文件,把AGP版本改成8.5.0,同时把Kotlin版本改成1.9.22(AGP 8.5.x配套的Kotlin版本是1.9.20+)
  • 如果是直接在根目录build.gradle/build.gradle.kts里配置:找到plugins块,修改AGP和Kotlin版本:
    plugins {
        id("com.android.application") version "8.5.0" apply false
        id("com.android.library") version "8.5.0" apply false
        id("org.jetbrains.kotlin.android") version "1.9.22" apply false
    }
    

2. 修复Kotlin版本不兼容的报错

你遇到的Module was compiled with an incompatible version of Kotlin错误,是因为RN 0.75.4默认用的是Kotlin 1.8.22,和你升级后用的1.9.22版本冲突了,得统一项目里的Kotlin版本:

  • 在根目录的build.gradle.kts里添加全局配置,强制所有依赖用同一个Kotlin版本:
    buildscript {
        ext {
            kotlinVersion = "1.9.22"
        }
    }
    
    subprojects {
        // 统一Kotlin编译参数
        tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
            kotlinOptions {
                jvmTarget = "17" // RN 0.75+要求JVM目标版本为17
                apiVersion = "1.9"
                languageVersion = "1.9"
            }
        }
    
        // 强制所有依赖使用指定的Kotlin标准库版本
        configurations.all {
            resolutionStrategy {
                force("org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.22")
                force("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.22")
                force("org.jetbrains.kotlin:kotlin-stdlib:1.9.22")
                force("org.jetbrains.kotlin:kotlin-reflect:1.9.22")
            }
        }
    }
    

3. 确认Gradle Wrapper配置

检查gradle/wrapper/gradle-wrapper.properties里的下载链接是否正确指向Gradle 8.7:

distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip

4. 清理缓存后重新构建

最后一步很关键,旧缓存很容易导致奇怪的问题:

  • 执行命令清理项目:./gradlew clean
  • 删除项目根目录下的.gradle文件夹(放心删,重新构建会自动下载)
  • 重新执行构建命令:./gradlew assembleDebug

按这个流程走下来,应该就能解决你遇到的两个问题了。

备注:内容来源于stack exchange,提问作者Jackee

火山引擎 最新活动