NativeScript / nativescript-cli

Command-line interface for building NativeScript apps
https://www.npmjs.com/package/nativescript
Apache License 2.0
1.04k stars 195 forks source link

WARNING: The Android SDK is not installed or is not configured properly. #4265

Open Jonarod opened 5 years ago

Jonarod commented 5 years ago

I followed all instructions in this official page NativeScript Advanced Setup: Linux.

I only got stuck at this step:

sudo apt-get install lib32z1 lib32ncurses5 libbz2-1.0:i386 libstdc++6:i386

for which I had to first run:

sudo dpkg --add-architecture i386

Regarding emulators, I chose genymotion. (did not install avd)

Now, after installing everything, here are all relevant environment settings/info I could get:

$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:    18.04
Codename:   bionic

$ node -v
v8.10.0

$ javac -version
javac 1.8.0_191

# installed latest android packages for Android 28
$ sudo $ANDROID_HOME/tools/bin/sdkmanager "tools" "emulator" "platform-tools" "platforms;android-28" "build-tools;28.0.3" "extras;android;m2repository" "extras;google;m2repository"

$ ls /opt/android-sdk
build-tools  emulator  extras  licenses  patcher  platform-tools  platforms  tools

$ echo $PATH
/opt/android-sdk/platform-tools:/opt/android-sdk/tools:/opt/android-sdk/tools/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

$ adb version
Android Debug Bridge version 1.0.40
Version 4986621
Installed as /opt/android-sdk/platform-tools/adb

$ tns --version
5.1.0

$ node
> process.env.ANDROID_HOME
`/opt/android-sdk`
> process.env.JAVA_HOME
'/usr/lib/jvm/java-8-oracle'

$ echo $ANDROID_HOME
/opt/android-sdk

$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

Now I finally check tns doctor...

There seem to be issues with your configuration.
✔ Getting NativeScript components versions information...
✔ Component nativescript has 5.1.0 version and is up to date.
✔ Your ANDROID_HOME environment variable is set and points to correct directory.
✔ Your adb from the Android SDK is correctly installed.
✔ A compatible Android SDK for compilation is found.
✔ Javac is installed and is configured properly.
✔ The Java Development Kit (JDK) is installed and is configured properly.
✔ Local builds for iOS can be executed only on a macOS system. To build for iOS on a different operating system, you can use the NativeScript cloud infrastructure.
✖ WARNING: The Android SDK is not installed or is not configured properly. 
 You will not be able to run your apps in the native emulator. To be able to run apps
in the native Android emulator, verify that you have installed the latest Android SDK 
and its dependencies as described in http://developer.android.com/sdk/index.html#Requirements 

As you can see, tns doctor says everything is fine... but not really. Precisely, I don't get the

"✔ A compatible Android SDK for compilation is found."

Vs

"✖ WARNING: The Android SDK is not installed or is not configured properly."

Is that even possible ? Any idea of any further investigations I should do ?

P.S: please, this is not the same problem as #3585 where adb is clearly in cause... #3585 title should be : "WARNING: adb from the Android SDK is not installed or is not configured properly." which is quite different

rosen-vladimirov commented 5 years ago

Hey @Jonarod , I've checked the error and it is raised when CLI is unable to find the emulator executable in the Android SDK. The error message is not correct and we'll have to fix it. At the moment, CLI's checks require you to have the emulator executable installed (no need to have any avd images). We'll revise this logic and think for a better solution in the future. For the moment, the easiest solution is to install the required emulator executable. Thanks for reporting this incorrect behavior.

abd-ulrehman commented 4 years ago

Hello there, I also stuck at there and the solution is You should have variable name(Android_HOME) and its value(path) as well as another variable JAVA_HOME with its value where it installed like(C:\Program Files\Java\jdk-13.0.1);

Hope it will work

rynkowsg commented 6 months ago

Most likely it missing of of the components in sdkmanager.

try

sdkmanager "tools" "emulator" "platform-tools" "platforms;android-34"