Flutter添加依赖后Android编译报错求助:JdkImageTransform执行失败
解决Flutter依赖编译时Android JdkImageTransform报错问题
问题情况
给Flutter项目添加shared_preferences_android、alarm_manager_plus这类依赖后,Android端编译持续失败,核心报错为:shared_preferences_android:compileDebugJavaWithJavac任务执行失败,无法解析androidJdkImage配置文件,处理core-for-system-modules.jar时JdkImageTransform执行出错,调用jlink.exe失败。已尝试切换Android SDK到API 35、设置Language Level为23,问题仍未解决。
报错详情
* What went wrong: Execution failed for task ':shared_preferences_android:compileDebugJavaWithJavac'. > Could not resolve all files for configuration ':shared_preferences_android:androidJdkImage'. > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. > Execution failed for JdkImageTransform: C:\Users\Victus\AppData\Local\Android\sdk\platforms\android-34\core-for-system-modules.jar. > Error while executing process C:\Program Files\Android\Android Studio\jbr\bin\jlink.exe with arguments {--module-path C:\Users\Victus\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\transformed\output\temp\jmod --add-modules java.base --output C:\Users\Victus\.gradle\caches\transforms-3\4a46fc89ed5f9adfe3afebf74eb8bfeb\transformed\output\jdkImage --disable-plugin system-modules} * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 7s
当前配置文件
项目根目录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 }
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
解决办法
- 清理Gradle缓存:删除
C:\Users\Victus\.gradle\caches目录下所有内容,依次执行flutter clean、flutter pub get后重新编译。 - 匹配Gradle与JDK版本:Gradle 8.3要求JDK 17及以上版本,检查Android Studio的JBR版本是否为17,若不是,通过
File > Project Structure > SDK Location > JDK Location切换到JDK 17。 - 明确Android编译配置:在app模块的
build.gradle中指定编译版本,同时对齐Java版本:android { compileSdkVersion 35 targetSdkVersion 35 compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } } - 修复Android SDK文件:删除Android SDK中
android-34目录,通过SDK Manager重新下载完整的android-34 SDK包,避免文件损坏。 - 降级Gradle版本:若上述方法无效,修改
gradle-wrapper.properties中的distributionUrl为https\://services.gradle.org/distributions/gradle-7.6-all.zip,使用兼容的低版本Gradle重试。
内容的提问来源于stack exchange,提问作者Ahmed abrar
相关产品推荐
相关产品推荐

