java - 为什么 cordova 选择了错误的 JDK 版本?
问题描述
在 macOS 上,运行终端命令时
cordova build android
我收到一个错误:
Checking Java JDK and Android SDK versions
ANDROID_SDK_ROOT=/Users/arnas/Android/Sdk (recommended setting)
ANDROID_HOME=/Users/arnas/Android/Sdk (DEPRECATED)
Requirements check failed for JDK 1.8.x! Detected version: 15.0.2
Check your ANDROID_SDK_ROOT / JAVA_HOME / PATH environment variables.
虽然跑步java -version
返回java version "1.8.0_291"
我的 bash_profile 设置是:
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
export ANDROID_HOME=$HOME/Android/Sdk
export ANDROID_SDK_ROOT=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
这里有什么问题?
解决方案
对我有用的是,实际上是通过运行nano ~/.bash_profile
并输入以下行在 bash_profile 中手动设置 JAVA_HOME:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home"
我通过在 JavaVirtualMachines 目录中找到最新的 JDK 版本来获得文件路径。
推荐阅读
- xaml - 有没有办法在 Xamarin.Forms Shell 顶部选项卡中显示图标?
- javascript - 单击按钮一次显示一个列表
- javascript - 使用角度 8 中的 @input 装饰器将数据从父组件传递到子组件
- reactjs - Redux 存储在集成测试期间未更新
- javascript - 来自子组件的 Vue ref 调用方法返回未定义的方法(v-for)
- r - R - IMDb 数据集文件 - 如何合并每部电影的线条
- python - 如何在 python 中使用 selenium 循环遍历这些元素并获得 XPATH 值作为回报?
- ansible - 在 ansible play 中获取当前失败/跳过/正常任务的数量
- sql - 从 AVG 中删除 Null 结果
- d3.js - 表 d3.js 中 div 元素中的交互式注释