配置无误但Flutter Run失败:connectivity_plus及JDK相关编译错误
问题排查方案
问题概述
启动Flutter调试到sdk gphone64 x86 64设备时出现以下异常:
警告:SDK处理。此版本仅支持最高版本3的SDK XML文件,但检测到版本4的文件,可能因Android Studio与命令行工具版本不匹配导致。
构建失败,任务':connectivity_plus:compileDebugJavaWithJavac'执行失败,无法解析':connectivity_plus:androidJdkImage'配置文件,转换core-for-system-modules.jar时JdkImageTransform执行失败,调用jlink.exe出错。
已尝试更换JDK 17版本、不同版本的connectivity_plus插件、flutter clean和flutter pub get,问题未解决。
排查步骤
1. 统一Android Studio与命令行工具版本
- 打开Android Studio,进入
Settings > Appearance & Behavior > System Settings > Android SDK > SDK Tools - 勾选Android SDK Command-line Tools,确保其版本与Android Studio版本一致,更新至稳定版后删除旧版本工具
- 重启Android Studio和终端,重新执行构建
2. 指定Flutter使用Android Studio自带JDK
- 找到Android Studio自带JDK路径,通常位于
Android Studio安装目录/jbr(Windows系统路径示例:C:\Program Files\Android\Android Studio\jbr) - 在项目根目录的
android/local.properties文件中添加:org.gradle.java.home=/path/to/Android Studio/jbr - 检查系统环境变量
JAVA_HOME,若指向第三方JDK,暂时移除该环境变量避免冲突
3. 调整connectivity_plus模块构建配置
- 在项目
android/build.gradle文件中添加以下配置,强制指定JDK镜像路径:subprojects { if (name == 'connectivity_plus') { configurations.androidJdkImage { resolutionStrategy { force files("${org.gradle.java.home}/jmods") } } } } - 若仍无效,尝试降级connectivity_plus至兼容稳定版本(如
4.0.2),并确保Flutter版本与之匹配
4. 彻底清理项目缓存
- 执行以下命令清理所有缓存后重建:
flutter clean # Windows系统替换为 rd /s /q android/.gradle rm -rf android/.gradle # Windows系统替换为 rd /s /q %USERPROFILE%/.gradle/caches rm -rf ~/.gradle/caches flutter pub get flutter run
内容的提问来源于stack exchange,提问作者SAGUGU - SAGUGU Sagi Levy
相关产品推荐
相关产品推荐

