Flutter项目升级至Java 11后构建失败提示jlink不存在如何解决
问题根因
报错直接指向路径缺失:构建时Gradle需要调用jlink工具处理Android系统模块包,但你当前配置的Gradle运行时是Android Studio Preview自带的裁剪版JRE,路径为/Applications/Android Studio Preview.app/Contents/jre/jdk/Contents/Home/,这个裁剪环境没有自带jlink可执行文件。升级Java 11后Android Gradle插件对JDK完整性有要求,你之前尝试的flutter clean、重装SDK都没有修改JDK路径配置,所以无法解决问题。
解决步骤
按顺序操作即可:
- 先定位本地完整JDK 11的路径
新版Android Studio(含Preview版)自带的完整JDK环境默认在同目录下的jbr文件夹,Mac路径为/Applications/Android Studio Preview.app/Contents/jbr/Contents/Home,你可以先打开这个路径下的bin目录,确认里面存在jlink文件;如果你自行安装了OpenJDK 11,就用你自己的安装路径即可。 - 修改Android项目的Gradle JDK配置
用Android Studio打开项目下的android目录,进入设置页找到Build, Execution, Deployment > Build Tools > Gradle,将Gradle JDK选项从原来指向旧jre路径的选项,替换为你刚才确认的完整JDK 11路径,保存设置。 - 对齐Flutter全局的JDK配置
终端执行命令指定Flutter构建用的JDK路径:flutter config --jdk-dir "你刚才确认的完整JDK11绝对路径" - 清缓存重新构建
终端依次执行以下命令后重新运行项目:flutter clean cd android ./gradlew clean cd .. flutter pub get
如果你习惯纯命令行构建不打开Android Studio,额外检查终端的
JAVA_HOME环境变量,确保变量值指向的是完整JDK 11路径,而非旧的裁剪版jre路径,否则命令行构建依然会触发相同报错。
内容的提问来源于stack exchange,提问作者Enzo Lizama
相关产品推荐
相关产品推荐

