Android Studio Giraffe中Kotlin版本不兼容问题求助
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: 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.
已执行操作
- 项目根
build.gradle中kotlinVersion从1.6.0改为1.9.10(匹配Android Studio Giraffe内置版本) com.bugsnag:bugsnag-android-gradle-plugin版本从7.+升级至8.+- 手动将AGP版本调整为7.4.2,但AGP升级助手无限加载无法使用
- 全局排查项目未发现Kotlin 1.7.1的配置痕迹
当前配置文件
项目根build.gradle
buildscript { ext { buildToolsVersion = "33.0.0" minSdkVersion = 24 compileSdkVersion = 33 targetSdkVersion = 33 ndkVersion = "23.1.7779620" 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" } } 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 missingDimensionStrategy 'react-native-camera', 'general' missingDimensionStrategy 'store', 'play' } 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" 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)
解决方案
1. 修复Gradle Wrapper版本冲突
当前项目配置的Gradle Wrapper版本为4.4,但实际使用的是Gradle 8.4,版本严重不匹配导致Kotlin版本混乱。修改根build.gradle的wrapper配置:
wrapper { gradleVersion = '8.4' // 与本地使用的Gradle版本一致 distributionUrl = "https://services.gradle.org/distributions/gradle-8.4-all.zip" }
执行命令更新Wrapper:
./gradlew wrapper
2. 匹配AGP与Kotlin版本兼容性
AGP 7.4.2仅支持Kotlin 1.8.x及以下版本,直接使用1.9.10会触发兼容性问题,二选一调整:
- 方案A:降级Kotlin版本(适配现有AGP 7.4.2)
修改根build.gradle的kotlinVersion:ext { kotlinVersion = '1.8.22' // AGP 7.4.2官方兼容版本 } - 方案B:升级AGP版本(推荐,适配Kotlin 1.9.10)
修改根build.gradle的AGP依赖:dependencies { classpath("com.android.tools.build:gradle:8.1.4") // 支持Kotlin 1.9.x的AGP版本 }
3. 强制子项目使用统一Kotlin版本
在根build.gradle的subprojects块中添加版本强制规则,避免第三方依赖引入旧版Kotlin:
subprojects { subproject -> afterEvaluate{ if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion } // 强制所有依赖使用统一Kotlin版本 configurations.all { resolutionStrategy.force "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion" resolutionStrategy.force "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion" resolutionStrategy.force "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" } } } }
4. 清理缓存并重建
- 重启Android Studio:
File -> Invalidate Caches... -> Invalidate and Restart - 执行清理构建命令:
./gradlew clean build --refresh-dependencies
额外检查
- 确认React Native依赖兼容性:删除
node_modules和package-lock.json,重新执行npm install - 固定Bugsnag插件版本:将
8.+改为具体版本(如8.7.0),避免自动拉取不兼容版本
内容的提问来源于stack exchange,提问作者Navis62
相关产品推荐
相关产品推荐

