1

Nativescript tns doctor tells me JDK is not configured correctly, even though it seems that it is.

I am currently running Big Sur on Mac. After installing all the iOS and Android requirements I keep getting this error from TNS Doctor:

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

You will not be able to build your projects for Android. To be able to build for Android, verify that you have installed The Java Development Kit (JDK) and configured it according to system requirements as described in http://docs.nativescript.org/setup/ns-cli-setup/ns-setup-os-x.html#system-requirements

✖ WARNING: The Java Development Kit (JDK) is not installed or is not configured properly.

In my ~/.bash_profile I have JAVA_HOME described as :

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

My entire ~/.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

printenv:

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

Aside from the tns errors, JAVA_HOME seems to be configured correctly; Running the avdmanager runs perfectly.

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

Seems to successfully create a device. avdmanager list device

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

(Not quite sure what the pixel device is)

Antny
  • 39
  • 6

1 Answers1

3

This setting in my .bash_profile file works for me:

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

See this related question and answer here: How to set JAVA_HOME environment variable on Mac OS X 10.9?