首页 > 解决方案 > TNS Doctor - JDK 配置不正确?

问题描述

Nativescript tns doctor 告诉我 JDK 配置不正确,即使看起来是这样。

我目前在 Mac 上运行 Big Sur。安装完所有 iOS 和 Android 要求后,我不断从 TNS Doctor 收到此错误:

✖ Error executing command 'javac'. Make sure you have installed The Java Development Kit (JDK) and set JAVA_HOME environment variable. 

您将无法为 Android 构建项目。为了能够为 Android 构建,请确认您已安装 Java 开发工具包 (JDK) 并按照http://docs.nativescript.org/setup/ns-cli-setup/ns-中所述的系统要求对其进行配置setup-os-x.html#system-requirements

✖ 警告:Java 开发工具包 (JDK) 未安装或配置不正确。

在我的 ~/.bash_profile 中,我将 JAVA_HOME 描述为:

export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"

我的整个 ~/.bash_profile:

Setting PATH for Python 3.9
The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.9/bin:${PATH}"
export PATH
export JAVA_HOME="$(/usr/libexec/java_home -v 1.8)"
export ANDROID_HOME=/usr/local/share/android-sdk
export ANDROID_SDK_ROOT=/usr/local/share/android-sdk

打印环境:

TERM_PROGRAM=Apple_Terminal
ANDROID_HOME=/usr/local/share/android-sdk
SHELL=/bin/bash
TERM=xterm-256color
TMPDIR=/var/folders/lb/d2r8qcsj3p765gs3pnhz9ndh0000gn/T/
TERM_PROGRAM_VERSION=440
ANDROID_SDK_ROOT=/usr/local/share/android-sdk
TERM_SESSION_ID=34C4C80E-4538-4E20-A8CD-F34C21412E64
USER=anthonydionise
SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.QtbknDrCPH/Listeners
PATH=/Library/Frameworks/Python.framework/Versions/3.9/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin
__CFBundleIdentifier=com.apple.Terminal
PWD=/Users/anthony
JAVA_HOME=/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
LANG=en_US.UTF-8
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/anthony
LOGNAME=anthony
_=/usr/bin/printenv

除了 tns 错误,JAVA_HOME 似乎配置正确;运行 avdmanager 运行良好。

avdmanager create avd -n test -k "system-images;android-25;google_apis;x86"

Parsing /usr/local/Caskroom/android-sdk/4333796/build-tools/28.0.3/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/emulator/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/extras/android/m2repository/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/extras/google/m2repository/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/extras/intel/Hardware_Accelerated_Execution_Manager/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/patcher/v4/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/platform-tools/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/platforms/android-28/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/system-images/android-25/google_apis/x86/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/tools/package.xmlAuto-selecting single ABI x86
Do you wish to create a custom hardware profile? [no] n

似乎成功创建了一个设备。 avdmanager 列表设备

Parsing /usr/local/Caskroom/android-sdk/4333796/build-tools/28.0.3/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/emulator/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/extras/android/m2repository/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/extras/google/m2repository/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/extras/intel/Hardware_Accelerated_Execution_Manager/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/patcher/v4/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/platform-tools/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/platforms/android-28/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/system-images/android-25/google_apis/x86/package.xmlParsing /usr/local/Caskroom/android-sdk/4333796/tools/package.xmlAvailable Android Virtual Devices:
    Name: test
    Path: /Users/anthonydionise/.android/avd/test.avd
  Target: Google APIs (Google Inc.)
          Based on: Android 7.1.1 (Nougat) Tag/ABI: google_apis/x86

The following Android Virtual Devices could not be loaded:
    Name: Pixel_3a_API_30_x86
    Path: /Users/anthonydionise/.android/avd/Pixel_3a_API_30_x86.avd
   Error: Google pixel_3a no longer exists as a device

(不太确定像素设备是什么)

标签: nativescript

解决方案


我的 .bash_profile 文件中的这个设置对我有用:

export JAVA_HOME=$(/usr/libexec/java_home)

请在此处查看此相关问题和答案: 如何在 Mac OS X 10.9 上设置 JAVA_HOME 环境变量?


推荐阅读