如何解决Java Native Interface错误?执行flutter doctor --android licence报错求助
Flutter Doctor Android Licences 执行时JNI错误的排查与解决
错误常见原因
- JDK版本不兼容:Flutter依赖的Android开发工具链对JDK版本有严格要求,过旧(如JDK 8及更早)或过新(如JDK 17+)的版本会出现JNI接口不匹配问题
- 环境变量配置异常:
JAVA_HOME指向的JDK路径错误,或系统PATH中存在多个JDK版本,导致调用时加载了错误的JNI库文件 - Android SDK工具损坏:Android SDK中的
sdkmanager或相关组件的JNI绑定文件损坏,触发调用失败 - 系统架构不匹配:安装的JDK架构(32/64位)与当前系统不兼容,导致JNI库无法正常加载
是否需要卸载重装JDK?
优先排查以下步骤,无需直接卸载:
- 验证
JAVA_HOME和PATH配置:执行echo %JAVA_HOME%(Windows)或echo $JAVA_HOME(Linux/macOS),确认路径指向正确的JDK目录;同时运行java -version和javac -version,确保版本一致 - 更新Android SDK工具:打开Android Studio的SDK Manager,将Android SDK Build-Tools更新至最新稳定版,修复可能损坏的组件
- 清理缓存:删除Android SDK目录下的
.cache文件夹,重新运行flutter doctor --android-licences
若以上操作后错误仍存在,再考虑卸载现有JDK并重装。
推荐的JDK版本
Flutter官方推荐使用OpenJDK 11或Oracle JDK 11:
- 这是当前Android开发生态的稳定兼容版本,适配所有主流系统
- 避免使用JDK 8(部分新Android工具已停止支持)和JDK 17+(JNI接口适配尚未完全成熟)
- 选择与系统架构匹配的安装包(64位系统选x64版本,32位选x86版本)
内容的提问来源于stack exchange,提问作者Shyam
相关产品推荐
相关产品推荐

