运行flutter doctor --android-licenses遇JNI错误,求解决及版本排查
解决
flutter doctor --android-licenses的JNI错误问题 JNI错误大概率是Java版本不匹配导致的——Android Studio自带的JDK版本和系统全局的Java版本不一致,flutter doctor调用系统全局Java时,和Android SDK工具要求的版本产生冲突。
具体解决步骤
1. 确认版本差异
在终端/命令行执行以下命令,查看系统当前使用的Java版本:
java -version javac -version
再对比Android Studio自带的JDK版本:打开Android Studio→File→Project Structure→SDK Location,复制JDK Location路径,进入该路径后执行bin/java -version查看版本。
2. 临时切换JDK(快速验证)
Windows系统:
set JAVA_HOME="C:\Program Files\Android\Android Studio\jbr" flutter doctor --android-licenses
注:路径需根据你的Android Studio安装位置调整,新版用jbr目录,旧版可能是jre
macOS/Linux系统:
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" flutter doctor --android-licenses
Linux路径一般为/opt/android-studio/jbr,根据实际安装位置调整
执行后再次运行flutter doctor --android-licenses,应该能正常进入许可证接受流程。
3. 永久设置Java环境变量
Windows系统:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」中找到
JAVA_HOME,修改其值为Android Studio自带JDK的路径(比如C:\Program Files\Android\Android Studio\jbr) - 点击「确定」保存,重启终端后生效
macOS/Linux系统:
- 编辑shell配置文件(bash用
~/.bash_profile,zsh用~/.zshrc):
nano ~/.zshrc
- 添加一行:
export JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home"
- 保存并退出,执行
source ~/.zshrc使配置生效
4. 额外检查项
- 打开Android Studio的SDK Manager→
SDK Tools,确保**Android SDK Command-line Tools (latest)**已安装并更新到最新版本 - 确认Flutter能识别Android SDK路径,执行:
flutter config --android-sdk "/path/to/your/android/sdk"
内容的提问来源于stack exchange,提问作者Titan
相关产品推荐
相关产品推荐

