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

React Native 0.71.0项目Android模块Kotlin版本不兼容导致无法编辑问题求助

React Native 0.71.0项目Android模块Kotlin版本不兼容导致无法编辑问题求助

我之前踩过一模一样的版本兼容坑!核心问题是Gradle版本、AGP(Android Gradle Plugin)版本、Kotlin版本三者完全不匹配——你用了远高于AGP 7.3.1支持范围的Gradle 8.14.3,再加上缓存的Kotlin元数据版本冲突,光Invalidate Cache根本解决不了。下面是我亲测有效的修复步骤,完全基于不升级RN 0.71.0的前提:

一、先搞懂版本匹配逻辑(关键!)

React Native 0.71.0官方绑定的AGP版本是7.3.1,而AGP和Gradle有严格的版本绑定规则:

  • AGP 7.3.x 仅支持 Gradle 7.3 ~ 7.5 版本,绝对不能用8.x版本(你当前用的8.14.3就是冲突根源)
  • Kotlin版本需要和AGP、Gradle兼容,AGP 7.3.1完全支持Kotlin 1.7.x ~ 1.8.20 版本

二、具体修复步骤

1. 降级Gradle到兼容范围

打开项目根目录下的 gradle/wrapper/gradle-wrapper.properties,修改distributionUrl为AGP 7.3.1完美匹配的Gradle 7.5版本:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

2. 调整Kotlin版本解决元数据冲突

打开android/build.gradlebuildscript块,把kotlin_version从1.7.20升级到1.8.0:

buildscript {
    ext {
        buildToolsVersion = "33.0.0"
        minSdkVersion = 23
        compileSdkVersion = 33
        targetSdkVersion = 33
        googlePlayServicesVersion = "17.0.0"
        firebaseMessagingVersion = "21.1.0"
        ndkVersion = "23.1.7779620"
        kotlin_version = '1.8.0' // 从1.7.20修改为1.8.0
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:7.3.1")
        classpath("com.facebook.react:react-native-gradle-plugin")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
        classpath 'com.google.gms:google-services:4.3.15'
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
    }
}

为什么选1.8.0?因为错误提示里的gradle-api-8.5.jar用的是1.8.0元数据,把项目Kotlin版本升到1.8.0就能直接兼容这个元数据,同时AGP 7.3.1对1.8.0版本支持很稳定。

3. 彻底清理缓存(比IDE自带功能更彻底)

只靠Android Studio的Invalidate Caches / Restart不够,必须手动删除这些文件夹:

  • 删除项目根目录下的 .gradle 文件夹
  • 删除 android/.gradle 文件夹
  • 删除 android/app/build 文件夹
  • 关闭Android Studio,重新打开后点击Sync Project with Gradle Files

4. 验证插件兼容性

你安装的Kotlin插件2.2.0完全没问题,它支持项目使用1.7+的Kotlin版本,不需要降级插件(插件版本可以高于项目的Kotlin版本)。

三、如果还是不行的额外排查点

  • 检查local.properties文件,有没有指定错误的Gradle路径?确保它指向我们刚设置的7.5版本
  • 保持targetSdkVersion=33(和RN 0.71.0默认一致,不要随便改到35,避免触发其他兼容问题)
  • 进入android目录,运行./gradlew clean命令,再同步项目

内容来源于stack exchange

火山引擎 最新活动