Ionic + Cordova Android 构建错误 - 找不到 tools.jar
Ionic + Cordova Android build error - could not find tools.jar
今天我已将我的 MacBook 升级到 macOS Big Sur 版本 11.0.1。现在,当我尝试为 Android.
构建项目时出现问题
Execution failed for task ':CordovaLib:compileDebugJavaWithJavac'.
> Could not find tools.jar. Please check that /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home contains a valid JDK installation.
我今天也遇到了同样的问题,而在升级到 Big Sur 之前,同样的设置(构建 Android 应用程序)对我有用。
我看到了各种解决方案,例如-
- Not able to run Eclipse on macOS Big Sur
但我不确定这些是否是推荐的解决方案。我尝试了几个小时,终于得到了正确的修复(在我看来)。
基本上,对我来说,JAVA_HOME
变量没有设置(或者 Big Sur 以某种方式删除了它)。
所以我只是将它添加到我的~/.zshrc
(或~/.bashrc
)-
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
您可以简单地检查并替换上一行中的版本号。
将 Mac Os 更新到 Big Sur 后,我遇到了同样的问题,
解决方案:
- 从 : https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
下载最新的 JDK 8
- 并安装它
如果 Cordova android 构建仍未解决此问题 - 只需手动执行即可。
我的情况:
java_home 设置正确并重新加载 ~/.zshrc(或 ~/.bashrc)文件。我通过在终端上回显得到 JAVA_HOME 值。
所以我手动将文件tool.jar从/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib
复制到
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib
它奏效了。
为了方便使用这个cmd
sudo cp /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib
只需检查您的 JAVA JDK 版本。
尝试运行
/usr/libexec/java_home -V
看看这个是否显示在列表中
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
我就是这种情况,我不得不删除 Internet Plug-Ins 文件夹中的条目。查看 here 了解更多对我有帮助的详细信息。
在我的例子中,出现问题是因为 JAVA_HOME
路径更新为
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
有很多问题
在终端上运行 /usr/libexec/java_home -V
时发现:
1.8.151.12 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_151 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
所以我将其更改为使用旧的工作
我也通过 下载最新版本的 jdk 8 并安装它解决了同样的问题。
我还设置了我的 .bash_profile (它可以是你的偏好之一),添加 JAVA 路径如下:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-latest-version/Contents/Home"
问题的发生是因为环境变量 JAVA_HOME
设置不正确。
第 1 步 - 通过在终端中打印其值来确认您对 JAVA_HOME
有疑问。您很可能会得到一个空字符串。
echo $JAVA_HOME
第 2 步 - 在您的计算机上找到正确的路径
/usr/libexec/java_home -V
复制与“Java SE 8”关联的路径,通常看起来像 /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
第 3 步 - 使用 nano
编辑 .zshenv
nano ~/.zshenv
第 4 步 - 将第 2 步中的路径添加到文件中,如下所示
export JAVA_HOME=YOUR_JAVA_PATH
示例:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
第 5 步 - 获取更新的 .zshenv
文件以激活环境变量
source ~/.zshenv
第 6 步 - 打印以确认路径
echo $JAVA_HOME
今天我已将我的 MacBook 升级到 macOS Big Sur 版本 11.0.1。现在,当我尝试为 Android.
构建项目时出现问题Execution failed for task ':CordovaLib:compileDebugJavaWithJavac'.
> Could not find tools.jar. Please check that /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home contains a valid JDK installation.
我今天也遇到了同样的问题,而在升级到 Big Sur 之前,同样的设置(构建 Android 应用程序)对我有用。
我看到了各种解决方案,例如-
- Not able to run Eclipse on macOS Big Sur
但我不确定这些是否是推荐的解决方案。我尝试了几个小时,终于得到了正确的修复(在我看来)。
基本上,对我来说,JAVA_HOME
变量没有设置(或者 Big Sur 以某种方式删除了它)。
所以我只是将它添加到我的~/.zshrc
(或~/.bashrc
)-
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home
您可以简单地检查并替换上一行中的版本号。
将 Mac Os 更新到 Big Sur 后,我遇到了同样的问题, 解决方案:
- 从 : https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html 下载最新的 JDK 8
- 并安装它
如果 Cordova android 构建仍未解决此问题 - 只需手动执行即可。 我的情况: java_home 设置正确并重新加载 ~/.zshrc(或 ~/.bashrc)文件。我通过在终端上回显得到 JAVA_HOME 值。
所以我手动将文件tool.jar从/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib
复制到
/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib
它奏效了。
为了方便使用这个cmd
sudo cp /Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home/lib/tools.jar /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib
只需检查您的 JAVA JDK 版本。
尝试运行
/usr/libexec/java_home -V
看看这个是否显示在列表中
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
我就是这种情况,我不得不删除 Internet Plug-Ins 文件夹中的条目。查看 here 了解更多对我有帮助的详细信息。
在我的例子中,出现问题是因为 JAVA_HOME
路径更新为
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
有很多问题
在终端上运行 /usr/libexec/java_home -V
时发现:
1.8.151.12 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
1.8.0_151 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home
所以我将其更改为使用旧的工作
我也通过 下载最新版本的 jdk 8 并安装它解决了同样的问题。 我还设置了我的 .bash_profile (它可以是你的偏好之一),添加 JAVA 路径如下:
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-latest-version/Contents/Home"
问题的发生是因为环境变量 JAVA_HOME
设置不正确。
第 1 步 - 通过在终端中打印其值来确认您对 JAVA_HOME
有疑问。您很可能会得到一个空字符串。
echo $JAVA_HOME
第 2 步 - 在您的计算机上找到正确的路径
/usr/libexec/java_home -V
复制与“Java SE 8”关联的路径,通常看起来像 /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
第 3 步 - 使用 nano
.zshenv
nano ~/.zshenv
第 4 步 - 将第 2 步中的路径添加到文件中,如下所示
export JAVA_HOME=YOUR_JAVA_PATH
示例:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home
第 5 步 - 获取更新的 .zshenv
文件以激活环境变量
source ~/.zshenv
第 6 步 - 打印以确认路径
echo $JAVA_HOME