模块是使用不兼容的 Kotlin 版本编译的。其元数据的二进制版本为 1.9.0,预期版本为 1.7.1

Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.9.0, expected version is 1.7.1

提问人:Navis62 提问时间:10/26/2023 最后编辑:Navis62 更新时间:10/28/2023 访问量:256

问:

我正在尝试在 android studio Giraffe 上构建一个 android 应用程序。 当我尝试升级build.gradle中的kotlin版本时,我一直遇到此错误

C:/Users/myself/.gradle/wrapper/dists/gradle-8.4-all/56r6xik2f6skrm47et0ibifug/gradle-8.4/lib/kotlin-stdlib-1.9.10.jar!/META-INF/kotlin-stdlib-jdk7.kotlin_module:模块是使用不兼容的 Kotlin 版本编译的。其元数据的二进制版本为 1.9.0,预期版本为 1.7.1。

这是我的build.gradle(项目) 我将 kotlinVersion 从 1.6.0 更改为 1.9.10,这是安装在 Android Studio 中的版本 我还将classpath(“com.bugsnag:bugsnag-android-gradle-plugin:7.+”)更改为8.+

我在互联网上能找到的只是“更新 build.gradle 中的 kotlinVersion”,但它似乎是正确的。而且我在整个项目中找不到任何“1.7.1”跟踪。

另一个问题:我手动更改了 Android Gradle 插件,因为 AGP 升级助手不起作用,我得到了永久的加载。我检测到我在 7.4.2 中

buildscript {
    ext {
        buildToolsVersion = "33.0.0"
        minSdkVersion = 24
        compileSdkVersion = 33
        targetSdkVersion = 33
        // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
        ndkVersion = "23.1.7779620"
        // Only using Android Support libraries - from react-native-iap
        supportLibVersion = "28.0.0"
        kotlinVersion = '1.9.10'
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle")
        classpath("com.bugsnag:bugsnag-android-gradle-plugin:8.+")
        classpath("com.facebook.react:react-native-gradle-plugin")
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // from react-native-iap
    }
}

wrapper {
    gradleVersion = '4.4'
    distributionUrl = distributionUrl.replace("bin", "all")
}

subprojects { subproject ->
    afterEvaluate{
        if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) {
            android {
                compileSdkVersion rootProject.ext.compileSdkVersion
                buildToolsVersion rootProject.ext.buildToolsVersion
            }
        }
    }
}

和我的build.gradle(模块)

apply plugin: "com.android.application"
apply plugin: "com.facebook.react"

react {
    
}

apply plugin: "com.bugsnag.android.gradle"
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" 

def enableProguardInReleaseBuilds = false

def jscFlavor = 'org.webkit:android-jsc:+'

android {
    ndkVersion rootProject.ext.ndkVersion

    compileSdkVersion rootProject.ext.compileSdkVersion

    namespace "XXX"
    defaultConfig {
        applicationId "XXX"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 270
        versionName "1"
        multiDexEnabled true // This is for method limit
        missingDimensionStrategy 'react-native-camera', 'general'
        missingDimensionStrategy 'store', 'play' // react-native-iap
    }

    signingConfigs {
        release {
            if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
                storeFile file(MYAPP_RELEASE_STORE_FILE)
                storePassword MYAPP_RELEASE_STORE_PASSWORD
                keyAlias MYAPP_RELEASE_KEY_ALIAS
                keyPassword MYAPP_RELEASE_KEY_PASSWORD
            }
        }
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
        }
    }
}

dependencies {
    implementation "com.android.billingclient:billing:6.0.1"
    // The version of react-native is set by the React Native Gradle Plugin
    implementation("com.facebook.react:react-android")
    implementation 'com.android.support:multidex:1.0.3'
    implementation 'androidx.work:work-runtime:2.8.1'

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}")
    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
        exclude group:'com.squareup.okhttp3', module:'okhttp'
    }
    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}")

    implementation 'com.getkeepsafe.relinker:relinker:1.4.5'

    if (hermesEnabled.toBoolean()) {
        implementation("com.facebook.react:hermes-android")
    } else {
        implementation jscFlavor
    }
}

apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

Android Kotlin android-gradle-插件

评论

0赞 Ivan Abakumov 10/26/2023
检查并更新依赖项。我之所以遇到这个问题,是因为我没有更新使用旧版本 Kotlin 的链接库之一。更新此库后,一切开始工作。
0赞 Navis62 10/26/2023
我已经更新了我的依赖项:s
0赞 Ivan Abakumov 10/26/2023
它没有帮助?
0赞 Navis62 10/26/2023
一点也不,我在升级 kotlin 版本之前就这样做了,我什至删除了重建所有内容node_module

答:

0赞 ItzDavi 10/27/2023 #1

引发此错误的原因是,当项目要求使用 Kotlin 1.7.1 时,您正在尝试使用 Kotlin 1.9.0。

在 Android Studio 中检查您的 Kotlin 版本:

Settings -> Languages and Frameworks -> Kotlin

检查您正在使用的版本,如果您愿意更新,请选择正确的版本(应该是 1.9.0)并通过 Android Studio 安装。

AGP 不工作的原因可能有多种原因。这是一个 React Native 项目(我不熟悉),但我找到了这个

报价:

React Native 尚不支持 Android Gradle 插件 8.0.x。我们在这里工作: AGP 到 8.0.2 #37019 一般来说,你不应该独立于 React Native 版本来提升 AGP。在 0.71.x 上,要使用的 AGP 版本是 7.3.1。

要使用 Android Studio 轻松管理 Gradle,请执行以下操作:

File -> Project Structure -> Project

您可以在此处找到您的 Gradle 版本。

评论

0赞 Navis62 10/27/2023
在“设置”->“语言和框架”-> Kotlin 中,我的版本是 223-1.9.0-release-358-blablabla,在“文件”->“项目结构>”中,我的 Gradle 版本是 8.0.1,这是在我接触 build.gradle 文件中的任何内容之前
0赞 ItzDavi 10/28/2023
引用上面的链接:React Native 尚不支持 Android Gradle 插件 8.0.x。