You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

NativeScript环境配置疑问:JAVA_HOME指向路径与Java版本适配问题

NativeScript环境配置疑问:JAVA_HOME指向路径与Java版本适配问题

看起来你在搭NativeScript Android开发环境时踩了版本适配的坑,我来帮你拆解下问题根源和解决办法:

首先,核心问题出在Java版本上:NativeScript 8.9.3目前还不支持Java 25这种预览版(ea版本)。Android构建依赖的Gradle工具对Java预览版的兼容性非常差,而且NativeScript官方推荐的是Java 8或11这类长期支持(LTS)版本——尤其是Java 8,很多老的Android插件和构建逻辑都是基于它做的适配,稳定性拉满。

然后看你的JAVA_HOME配置:虽然路径指向了/usr/lib/jvm/default-java,但这个其实是Ubuntu的软链接,它现在指向的是你装的Java 25预览版,所以即使路径“看起来”正确,版本不对还是会被ns doctor判定为配置异常。

接下来给你一套实操的修复步骤,亲测在Ubuntu上有效:

  1. 安装兼容的LTS版JDK
    优先选OpenJDK 11(LTS版,Ubuntu官方仓库直接能装),运行:

    sudo apt update && sudo apt install openjdk-11-jdk -y
    
  2. 切换系统默认的Java版本
    Ubuntu自带的update-alternatives工具可以轻松切换Java版本,分别运行这两条命令,然后在弹出的选项里选对应OpenJDK 11的编号:

    sudo update-alternatives --config java
    sudo update-alternatives --config javac
    

    (选完后可以用javac --versionjava --version验证,应该显示11.x的版本)

  3. 修正JAVA_HOME指向
    打开你的shell配置文件(如果用bash就是~/.bashrc,zsh就是~/.zshrc),添加或修改这两行:

    export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    

    然后让配置生效:

    source ~/.bashrc  # 如果你用zsh就换成source ~/.zshrc
    

    验证一下:printenv JAVA_HOME应该显示你刚写的路径。

  4. 最后验证NativeScript环境
    运行ns doctor android,这时候应该不会再报JDK相关的错误了。

额外提一句:为什么不推荐用Java 17+?因为NativeScript 8.9.3依赖的Gradle版本对Java 17以上的支持需要额外配置,而且Android SDK的部分旧构建工具(比如针对低版本Android的编译组件)对高版本Java兼容性不好,用LTS版是最省心的选择。要是之后你需要切换回高版本Java做别的开发,用update-alternatives再切回去就行,很方便~

这样应该就能解决你的问题了,有任何步骤卡住随时说!

火山引擎 最新活动