Flutter 3.24.3适配Android Studio Ladybug 2024.2.1构建失败求助
将Android Studio升级至最新版本Ladybug 2024.2.1后,Flutter 3.24.3应用在安卓模拟器和真机上运行均报错。报错信息最初指向google_sign_in_android库,但移除该库后,其他库仍会触发相同问题;已尝试更新所有依赖库,问题未解决。
报错详情
FAILURE:构建过程出现异常导致失败。
问题原因:
任务':google_sign_in_android:compileDebugJavaWithJavac'执行失败。
无法解析':google_sign_in_android:androidJdkImage'配置的所有文件。
转换core-for-system-modules.jar以匹配属性{artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}失败。
JdkImageTransform执行失败:/Users/zaydahmad/Library/Android/sdk/platforms/android-34/core-for-system-modules.jar。
执行/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/jlink进程时出错,参数为{--module-path /Users/zaydahmad/.gradle/caches/transforms-3/fd4e2b69c2691a24d99d2b3c10c60f94/transformed/output/temp/jmod --add-modules java.base --output /Users/zaydahmad/.gradle/caches/transforms-3/fd4e2b69c2691a24d99d2b3c10c60f94/transformed/output/jdkImage --disable-plugin system-modules}
建议操作:
使用--stacktrace选项获取堆栈跟踪。
使用--info或--debug选项获取更多日志输出。
使用--scan选项获取完整分析信息。
访问https://help.gradle.org获取更多帮助。
BUILD FAILED in 9s
Error: Gradle任务assembleDebug执行失败,退出码为1
相关配置文件
android/app/build.gradle
android { compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } }
android/gradle/wrapper/gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
android/build.gradle
allprojects { repositories { google() mavenCentral() } } rootProject.buildDir = "../build" subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { project.evaluationDependsOn(":app") } tasks.register("clean", Delete) { delete rootProject.buildDir }
针对JdkImageTransform和jlink执行失败的问题,可按以下步骤尝试修复:
升级Gradle版本
Android Studio Ladybug 2024.2.1推荐搭配Gradle 8.6及以上版本。修改android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip统一Java版本配置
Android Studio 2024.2.1自带的JBR为Java 17,与当前配置的Java 8存在兼容冲突。修改android/app/build.gradle的compileOptions,同时确保所有子模块同步配置:- 修改
android/app/build.gradle:android { compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } } - 在
android/build.gradle的subprojects块中添加全局Java版本配置:subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" tasks.withType(JavaCompile) { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } }
- 修改
清理Gradle缓存
删除本地Gradle缓存目录(路径为~/.gradle/caches),然后重新执行构建命令。重新下载Android 34平台组件
打开Android Studio的SDK Manager,找到Android 14 (API 34),先卸载再重新下载完整的平台组件,确保core-for-system-modules.jar文件无损坏。验证Flutter与Gradle兼容性
运行flutter doctor检查环境配置,确保Flutter 3.24.3与升级后的Gradle、Android Studio版本兼容,若存在不兼容提示,按指引调整。
内容的提问来源于stack exchange,提问作者Harith Bashar

