jlink不存在如何解决?

duk*_*zwe 18 java android react-native expo java-11

我正在使用并尝试在一个裸项目react native中使用expo ,但是每当我尝试使用命令运行应用程序时,我都会收到此错误:npm run android

Execution failed for task ':expo-modules-core:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':expo-modules-core:androidJdkImage'.
   > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}.
      > Execution failed for JdkImageTransform: /home/dukizwe/Android/Sdk/platforms/android-31/core-for-system-modules.jar.
         > jlink executable /usr/lib/jvm/java-14-openjdk-amd64/bin/jlink does not exist.
Run Code Online (Sandbox Code Playgroud)

我使用的是linux操作系统,Android studioJDK都已正确安装。

文件夹内部的/usr/lib/jvm/结构如下所示:

  • java-1.11.0-openjdk-amd64
  • java-1.14.0-openjdk-amd64
  • java-11-openjdk-amd64
  • java-14-openjdk-amd64
  • jdk-18

我不知道为什么它在java-14-openjdk-amd64文件夹中查找,因为在该文件夹中没有jlink可执行文件。

android studiosi中SDK Location指向java-11-openjdk. 有什么帮助吗?

pjo*_*shi 18

当我在新的 Ubuntu 22.x 机器上运行 React Native 应用程序时,我也遇到了同样的问题。我通过安装 JRE 和 JDK 来修复它。

步骤 1sudo apt install default-jre 随后java -version

应显示 -

Output openjdk version "11.0.14" 2022-01-18 OpenJDK Runtime Environment (build 11.0.14+9-Ubuntu-0ubuntu2) OpenJDK 64-Bit Server VM (build 11.0.14+9-Ubuntu-0ubuntu2, mixed mode, sharing)

其次是 - sudo apt install default-jdk

检查 -javac -version 以获得输出为 -

Output javac 11.0.14

希望能帮助到你!


cdo*_*orn 13

您需要安装Java的开发包。在 Debian 上,这是这个openjdk-11-jdk包。


Que*_*232 7

看来您需要将 JAVA_HOME 环境变量设置为 jlink 二进制文件的父级。Android Studio 包含自己的 jlink 二进制文件。在 Linux(或 Mac)上,您可以使用:

export JAVA_HOME="$HOME/android-studio/jbr"
Run Code Online (Sandbox Code Playgroud)

接下来的内容$HOME取决于您安装 Android Studio 的位置。

更永久的解决方案是编辑~/.bashrc文件,将上面提供的命令(如果有的话进行路径修改)附加到所述文件的末尾并保存更改。一切完成,打开一个新终端并再次尝试编译。

在 Windows 上,您需要将 JAVA_HOME 添加到您的路径中


小智 3

我刚刚复制了jlink,javacjmod从此路径:

/home/USER/android-studio/jre/bin/

到以下路径:

/usr/lib/jvm/java-11-openjdk-11.0.15.0.10-1.fc36.x86_64/bin

Terminal注意:以 root 身份使用很重要

使用的操作系统:Linux Fedora 36

  • 不要像这样复制文件!您需要安装适合您的 Java 版本的开发包(在我的例子中是 Fedora 36 上的 Java17): sudo dnf install java-17-openjdk-devel (13认同)