android - 找不到 tools.jar。请检查/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 是否包含有效的 JDK 安装

标签 android react-native react-native-android

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-linear-gradient:compileDebugJavaWithJavac'.
> Could not find tools.jar. Please check that /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home contains a valid JDK installation.
当我升级到 Mac os Big sur 并运行时,
npx react-native run-android
我收到此错误(Android)。我从 Stack Overflow 尝试了很多解决方案,但都没有奏效。
我创建了一个新项目并且它正在工作。此外,一些旧项目也运行良好。
*react-native Version: "0.63.3",*
请帮我找到解决方案?

最佳答案

问题是,随着更新,内置 java 优先,它没有 SDK,因为它只是运行时。
您只需要更改您的 java 主页并将 java 二进制文件添加到您的 .zshrc
找到你的 java home 执行:

/usr/libexec/java_home -V | grep jdk
输出应类似于以下内容:
Matching Java Virtual Machines (1):
1.8.0_272 (x86_64) "AdoptOpenJDK" - "AdoptOpenJDK 8" /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
在我的情况下,您应该从说 SDK 的路径中选择
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
之后,您只需将以下内容添加到应该在您家中的 .zshrc 的末尾。
你可以编辑它(如果你决定使用 vim,你可以退出写作:wq!然后按回车)
vim .zshrc
添加以下内容:
export JAVA_HOME=the/path/you/copied/before
export PATH=$JAVA_HOME/bin:$PATH
在我的情况下/path/you/copyed/before 在哪里
/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
保存文件并关闭所有终端并再次打开它们。
如果在编辑 .zshrc 文件时出现错误 ".zshrc"E212: Can't open file for writing
然后使用 sudo vim.zshrc 你就可以编辑了。
错误应该得到解决。
编辑
而不是 ~/.zshrc , 你可以有 ~/.bash_profile~/.bash_rc所以相应地编辑你的

关于android - 找不到 tools.jar。请检查/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 是否包含有效的 JDK 安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64968851/

相关文章:

android - 如何在我的应用程序中设置自定义字体,同时尊重用户的系统字体设置?

android - React Native,检测屏幕恢复

javascript - 如何在我的类组件中使用 useFormikContext Hook ?

react-native - 在响应 native 中处理网络请求失败

java - 从另一个 JSON 数组中的 JSON 数组检索多个 JSON 对象?

空对象引用上的 java.lang.String java.lang.Object.toString()'

react-native - 登录后导航

remote-debugging - 如何在 React-Native 中禁用远程 JS 调试

java - 如何将数组放在 React Native 桥中的 WritableMap 对象上

android - TableLayout 单元格定位