Flutter运行时shared_preferences_android编译失败,Gradle构建出错求助
看你这错误日志,应该是Gradle在处理Android 34 SDK的系统模块时,JDK镜像转换环节出问题了,直接导致shared_preferences_android插件编译失败。我给你整理几个实测有效的解决思路,你挨个试试:
方案1:先排查JDK版本兼容性
这个报错核心是jlink.exe执行失败,首先得确保JDK路径统一:
- 打开Android Studio,点
File > Project Structure > SDK Location,确认JDK location用的是AS自带的JBR(就是你日志里的C:\Program Files\Android\Android Studio\jbr) - 打开项目的
android/gradle.properties,删掉手动指定的org.gradle.java.home配置(如果有的话),避免和AS自带JDK冲突
方案2:清缓存+重装SDK模块
缓存损坏是高频诱因,按这个步骤来:
- 先关掉Android Studio和所有Flutter终端窗口
- 删除Gradle缓存目录:
C:\Users\MSI\.gradle\caches - 打开AS的SDK Manager,找到
Android 14 (API 34)先卸载,再重新安装 - 回到项目根目录执行命令:
flutter clean flutter pub get flutter run
方案3:临时降级Android SDK版本
如果Android 34的系统模块本身有问题,先降级到API 33过渡:
- 在SDK Manager里安装
Android 13 (API 33) - 修改项目
android/app/build.gradle,把compileSdkVersion和targetSdkVersion都改成33 - 再执行
flutter clean && flutter pub get && flutter run
方案4:升级Gradle插件版本
旧版Gradle对Android 34的支持可能有bug,尝试升级:
- 打开
android/build.gradle,把classpath 'com.android.tools.build:gradle:xxx'升级到兼容API 34的版本(比如AS Hedgehog对应Gradle 8.2+) - 同步修改
android/gradle/wrapper/gradle-wrapper.properties里的distributionUrl,比如改成https\://services.gradle.org/distributions/gradle-8.2-all.zip
要是这些方法都没解决,你可以跑flutter run --stacktrace把完整栈信息贴出来,能更精准定位问题~
备注:内容来源于stack exchange,提问作者Sachin Acharya
相关产品推荐
相关产品推荐

