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

Posted

技术标签:

【中文标题】Ionic + Cordova Android 构建错误 - 找不到 tools.jar【英文标题】:Ionic + Cordova Android build error - could not find tools.jar 【发布时间】:2021-02-27 13:02:47 【问题描述】:

今天我已将我的 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.

【问题讨论】:

检查您的 JDK 和路径。我建议你重新安装 Java JDK。 我在终端 /usr/libexec/java_home 运行,结果是 /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 。我假设 java 路径和 JDK 工作正常。 【参考方案1】:

尝试运行

/usr/libexec/java_home -V

看看这是否显示在列表中

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

我就是这种情况,我不得不删除 Internet Plug-Ins 文件夹中的条目。查看here 了解对我有帮助的更多详细信息。

【讨论】:

Big Sur更新后出现错误,尝试了所有其他解决方案,只有这个解决了。谢谢! 这解决了我的问题。谢谢! 这也为我解决了问题。 谢谢,你为我节省了很多时间! 对我也有用,IONIC 堆栈【参考方案2】:

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

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

    Flutter could not find tools.jar 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

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

【讨论】:

Big Sur 更新后,JAVA_HOME 变量已从我的~ /.bashrc 中删除,谢谢 如何打开 .bashrc 或 .zshrc 文件? 找了半天,终于也找到了。谢谢你们,这在大苏尔完美地工作 @zulkarnainshah 转到您的根目录并按cmd + shirt + . (dot) 您可以看到 .bashrc 和 .zshrc 文件【参考方案3】:

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

【讨论】:

错字与否?我有 1.8.0.121.jdk 而不是 _211。另外我也跟着这个:explainjava.com/set-java-home-mac-os【参考方案4】:

这个问题是因为环境变量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

【讨论】:

【参考方案5】:

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

从https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html下载最新的JDK 8 并安装它

【讨论】:

me 2. 我已经下载了最新版本。例如 jdk-8u291。然后我运行了这个 cmd 并修复了问题。 sudo cp /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home/lib/tools.jar /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/lib 这对我来说真的很酷......谢谢【参考方案6】:

在我的情况下,出现问题是因为 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

所以我把它改成使用旧的工作了

这可以帮助set or change the default Java (JDK)

【讨论】:

【参考方案7】:

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

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk-latest-version/Contents/Home"

【讨论】:

以上是关于Ionic + Cordova Android 构建错误 - 找不到 tools.jar的主要内容,如果未能解决你的问题,请参考以下文章

cordova-plugin-ionic-webview - 自定义方案不适用于 Android

Ionic Cordova 不构建 android

如何为 react.cordova、ionic 和 android 设置 ssl 证书?

在 ionic serve/cordova 运行 android 命令后,Ionic CSS 更改不会持久

Ionic 3:更新 Cordova 等后无法构建 Android

Ionic 3 cordova 遇到设备/模拟器错误 [Android]