Arch Linux下Flutter安装遇sdkmanager启动失败问题求助
解决Arch Linux上Flutter安装时Android许可证验证失败问题
问题背景
在Arch Linux上通过Android Studio安装Flutter后,执行flutter doctor提示Android许可证状态未知;运行flutter doctor --android-licenses触发java.lang.module.FindException: Module java.se.ee not found错误,且sdkmanager在Java 8/17环境下均无法正常运行。
解决方案
1. 配置兼容的Java环境
Android Studio Giraffe(2022.3)推荐使用Java 17,先确保已安装对应版本:
sudo pacman -S java-17-openjdk
设置JAVA_HOME环境变量(路径根据实际安装情况调整,通常为/usr/lib/jvm/java-17-openjdk):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk export PATH=$JAVA_HOME/bin:$PATH
2. 修改sdkmanager启动参数适配Java 17
Java 9及以上版本已移除java.se.ee模块,需调整sdkmanager的启动参数:
- 打开sdkmanager脚本文件:
nano /home/ryann62/Android/Sdk/cmdline-tools/latest/bin/sdkmanager
- 找到包含
JAVA_OPTS的行,将原有的--add-modules java.se.ee替换为拆分后的兼容模块:
JAVA_OPTS='-XX:+IgnoreUnrecognizedVMOptions --add-modules java.xml.bind,java.activation,java.se.legacy'
- 保存退出后,直接运行sdkmanager接受许可证:
cd /home/ryann62/Android/Sdk/cmdline-tools/latest/bin ./sdkmanager --licenses
按照提示输入y确认接受所有许可证。
3. 验证Flutter环境
完成许可证操作后,重新执行:
flutter doctor
此时Android toolchain的许可证状态应恢复正常。
4. 解决Chrome缺失问题
Arch Linux默认无google-chrome,可安装Chromium并配置环境变量:
sudo pacman -S chromium export CHROME_EXECUTABLE=/usr/bin/chromium
若需永久生效,将上述export命令添加到~/.bashrc或~/.zshrc文件中。
内容的提问来源于stack exchange,提问作者Niall Ryan
相关产品推荐
相关产品推荐

