Ionic + Cordova Android 构建错误 - 找不到tools.jar

问题描述 投票:0回答:7

今天我已将 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.
android cordova ionic-framework ionic3 macos-big-sur
7个回答
50
投票

尝试跑步

/usr/libexec/java_home -V

看看这是否显示在列表中

/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

我就是这种情况,我必须删除 Internet 插件文件夹中的条目。请查看此处了解对我有帮助的更多详细信息。


30
投票

我今天也遇到了同样的问题,而在升级到 Big Sur 之前,相同的设置(构建 Android 应用程序)对我有用。

我看到了各种解决方案,例如-

  1. Flutter 找不到tools.jar
  2. 无法在 macOS Big Sur 上运行 Eclipse

但我不确定这些是否是推荐的解决方案。我尝试了几个小时,终于得到了正确的修复(在我看来)。

基本上,对我来说,

JAVA_HOME
变量没有设置(或者大苏尔以某种方式删除了它)。

所以我只是将它添加到我的

~/.zshrc
(或
~/.bashrc
)-

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home

您可以简单地检查并替换上面一行中的版本号。


25
投票

如果 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
它起作用了。

为了方便使用此命令

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 版本即可。


15
投票

出现此问题是因为环境变量

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 步 - 使用

.zshenv
 编辑 
nano

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

2
投票

将 Mac OS 更新到 Big Sur 后,我遇到了同样的问题, 解决方案:


2
投票

在我的情况下,出现问题是因为

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

所以我将其更改为使用旧的工作


0
投票

我也通过下载最新版本的jdk 8并安装它解决了同样的问题。 我还设置了我的 .bash_profile (它可以是您的偏好之一),添加 JAVA 路径如下:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-latest-version/Contents/Home"
© www.soinside.com 2019 - 2024. All rights reserved.