升级Kotlin至2.0.0后Flutter应用Gradle构建失败求助
Kotlin 2.0.0升级后Flutter安卓构建失败解决方案
问题概况
将项目Kotlin版本升级至2.0.0后,Flutter应用启动失败,运行gradle build时触发:app:mergeExtDexDebug任务执行错误,核心报错包括:
- 无法解析
debugRuntimeClasspath配置的所有文件 - D8脱糖过程中出现空指针异常:
Cannot invoke "String.length()" because "<parameter1>" is null,涉及appcompat-1.7.0、lifecycle-livedata-core-2.8.1等依赖 - 附带SDK XML版本不匹配警告(Android Studio与命令行工具版本不一致)
当前环境:Gradle 7.6.3,JVM 19.0.1
解决方案
1. 对齐Android Gradle插件(AGP)与Kotlin版本兼容性
Kotlin 2.0.0要求AGP版本至少8.0以上,当前使用的AGP 7.3.1不兼容,需同步升级:
- 修改
settings.gradle中的插件版本:plugins { id "dev.flutter.flutter-plugin-loader" version "1.0.0" id "com.android.application" version "8.0.2" apply false // 升级至兼容版本 id "org.jetbrains.kotlin.android" version "2.0.0" apply false } - 更新
gradle/wrapper/gradle-wrapper.properties中的Gradle版本(AGP 8.0+需搭配Gradle 8.0+):distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-all.zip
2. 优化Java版本与脱糖配置
JVM 19与旧版脱糖库存在兼容性问题,建议切换到Android推荐的JDK 17,并升级脱糖依赖:
- 修改
android/app/build.gradle中的脱糖版本:dependencies { // ...其他依赖 coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4' // 升级至最新稳定版 } - 确保
kotlinOptions与compileOptions的Java版本一致(保持1.8或升级到17,需对应JDK环境):compileOptions { coreLibraryDesugaringEnabled true sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' }
3. 清理Gradle缓存并重建
缓存损坏可能导致依赖解析异常,执行以下操作:
./gradlew clean build --refresh-dependencies
或手动删除项目根目录下的.gradle/caches文件夹,再重新运行构建。
4. 升级冲突依赖
appcompat-1.7.0、lifecycle-livedata-core-2.8.1与Kotlin 2.0.0存在兼容性问题,手动升级至最新稳定版:
在android/app/build.gradle的dependencies中添加:
implementation 'androidx.appcompat:appcompat:1.8.0' implementation 'androidx.appcompat:appcompat-resources:1.8.0' implementation 'androidx.lifecycle:lifecycle-livedata-core:2.8.2'
5. 修复SDK版本不匹配警告
更新Android Studio至最新稳定版,同时打开SDK Manager同步命令行工具与IDE版本,消除XML版本不兼容警告。
内容的提问来源于stack exchange,提问作者Luis Pereira
相关产品推荐
相关产品推荐

