You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决React Native裸项目中jlink不存在的报错问题?

解决Expo裸项目执行npm run android的JDK报错问题

问题重现

执行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

系统/usr/lib/jvm/下存在多个JDK版本,且Android Studio已指定Java11,但Gradle仍尝试使用缺失jlink的Java14。

解决方案

1. 切换系统默认JDK到Java11

Gradle可能优先使用系统默认JDK而非Android Studio配置的版本,执行以下命令切换:

  • 查看当前默认Java版本:
    java -version
    javac -version
    
  • 切换默认Java和Javac到Java11:
    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    
    在弹出的选项中选择java-11-openjdk-amd64对应的序号。

2. 强制Gradle使用Java11

在项目根目录的gradle.properties文件中添加以下配置,指定Gradle使用的JDK路径:

org.gradle.java.home=/usr/lib/jvm/java-11-openjdk-amd64

或者通过Android Studio设置:进入File > Settings > Build, Execution, Deployment > Build Tools > Gradle,在Gradle JDK下拉选择java-11-openjdk-amd64,然后点击Sync Now同步项目。

3. 清理项目缓存后重新构建

执行以下命令清理缓存并重装依赖:

./gradlew clean
npm cache clean --force
rm -rf node_modules && npm install

之后重新运行npm run android。

4. (可选)卸载不完整的Java14

如果上述方法无效,可卸载缺失jlink的Java14版本,避免Gradle误选:

sudo apt remove openjdk-14-jdk openjdk-14-jre

内容的提问来源于stack exchange,提问作者dukizwe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:54:17