Flutter集成Firebase后运行失败:JdkImageTransform错误如何解决?
Flutter项目集成Firebase后无法运行,已尝试以下操作:
- 执行
flutter clean - 更换多个Java版本(当前使用Java 17)
- 执行命令:
./gradlew clean ./gradlew build
Gradle构建成功,但运行应用时仍报错,具体错误信息如下:
Launching lib\main.dart on Pixel 8 Pro in debug mode...
Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
warning: [options] source value 8 is obsolete and will be removed in a future release
warning: [options] target value 8 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
3 warningsFAILURE: Build failed with an exception.
- What went wrong:
Execution failed for task ':path_provider_android:compileDebugJavaWithJavac'.Could not resolve all files for configuration ':path_provider_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\nisha\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\nisha.gradle\caches\transforms-3\01761d3d44a592c784df1715afe57f9c\transformed\output\temp\jmod --add-modules java.base --output C:\Users\nisha.gradle\caches\transforms-3\01761d3d44a592c784df1715afe57f9c\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 2m 12s
Running Gradle task 'assembleDebug'... 133.6s
Error: Gradle task assembleDebug failed with exit code 1
- Android组件版本不兼容:Android Studio与命令行工具版本不一致,导致SDK XML版本(4)超出当前工具支持的最高版本(3)
- Java编译版本过时:项目配置的source/target Java版本为8,与当前使用的Java 17不匹配,触发过时警告且影响构建
- JDK镜像转换失败:
path_provider_android插件在处理Android 34系统模块jar包时,jlink命令执行出错,核心原因是JDK版本、Android SDK版本与Gradle插件版本不匹配
统一Android Studio与命令行工具版本
打开Android Studio的SDK Manager,进入SDK Tools标签页,确保Android SDK Command-line Tools更新到与Android Studio版本兼容的最新版本,避免版本差异导致的XML解析问题更新Java编译版本配置
- 打开项目
android/app/build.gradle文件,修改compileOptions:android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } } - 打开
android/build.gradle文件,确保Gradle插件版本支持Java 17,例如:plugins { id "com.android.application" version "8.2.0" apply false id "org.jetbrains.kotlin.android" version "1.9.0" apply false }
- 打开项目
清理并重新构建项目
依次执行以下命令:flutter clean cd android && ./gradlew clean cd .. && flutter pub get flutter run更新依赖插件版本
打开pubspec.yaml文件,确保path_provider依赖为最新兼容版本,例如:dependencies: path_provider: ^2.1.2执行
flutter pub get更新依赖
内容的提问来源于stack exchange,提问作者MNBLabs

