Flutter集成sqflite包后构建失败:sqflite_android:compileDebugJavaWithJavac错误
我之前也踩过这个坑,这个报错大多和Android SDK完整性、JDK配置兼容性或者sqflite版本适配有关,给你几个亲测有效的解决方案,你可以挨个尝试:
重新安装Android 34 SDK平台包
打开Android Studio的SDK Manager,找到Android 34的平台选项,先卸载再重新安装。有时候SDK下载过程中会出现文件损坏,导致core-for-system-modules.jar无法被正常解析,重新安装能大概率解决这个问题。确认JDK版本与项目配置匹配
sqflite_android对JDK版本有明确要求,建议直接使用Android Studio自带的JBR(JetBrains Runtime)。你可以检查项目的android/build.gradle文件,确保编译配置的JDK版本和你使用的JBR版本一致:compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' }一般Android Studio Hedgehog及以上版本自带的是JDK 17,如果你用的是旧版本Studio,可能需要升级IDE或者调整JDK版本。
更新sqflite到最新稳定版
旧版本的sqflite可能和最新的Android SDK存在兼容性冲突。打开pubspec.yaml,把sqflite的版本更新到最新稳定版,比如:dependencies: sqflite: ^2.3.2+1执行
flutter pub get后再重新构建项目。清理Gradle缓存
Gradle缓存损坏也会导致这类奇怪的构建错误,你可以按以下步骤操作:- 关闭当前使用的IDE(Android Studio/VS Code)
- 删除项目根目录下的
.gradle文件夹,以及android/.gradle文件夹 - 重新打开项目,依次执行
flutter clean、flutter pub get,最后尝试构建。
避免路径中的特殊字符
你的用户目录路径C:\Users\Hasnat Bin Sayed包含空格,虽然大部分情况下没问题,但偶尔会导致Gradle处理文件路径时出错。你可以把项目移动到一个没有空格和特殊字符的路径下(比如C:\Projects\MyFlutterApp),再重新构建试试。
你遇到的具体报错信息:
Launching lib\main.dart on sdk gphone64 x86 64 in debug mode...
Running Gradle task 'assembleDebug'...FAILURE: Build failed with an exception.
- What went wrong:
Execution failed for task ':sqflite_android:compileDebugJavaWithJavac'.Could not resolve all files for configuration ':sqflite_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\Hasnat Bin Sayed\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\Hasnat Bin Sayed.g...
备注:内容来源于stack exchange,提问作者Hasnat Bin Sayed

