cli: react-native doctor does not find ANDROID_HOME, ANDRIOD SDK and JDK

Environment

System: OS: Windows 10 10.0.17763 CPU: (12) x64 Intel® Core™ i7-9750H CPU @ 2.60GHz Memory: 5.40 GB / 15.86 GB Binaries: Node: 12.18.0 - C:\Program Files\nodejs\node.EXE Yarn: Not Found npm: 6.14.5 - C:\Program Files\nodejs\npm.CMD Watchman: Not Found SDKs: Android SDK: Not Found IDEs: Android Studio: Version 3.6.0.0 AI-192.7142.36.36.6392135 Languages: Java: Not Found Python: 3.8.3 npmPackages: @react-native-community/cli: Not Found react: 16.13.1 => 16.13.1 react-native: 0.63.0 => 0.63.0 npmGlobalPackages: react-native: Not Found

Description

Cannot find Android SDK, JDK, or Android_HOME even though its all available, shown below: Annotation 2020-07-15 201018 Annotation 2020-07-15 201002

not sure if bug or other problem. This causes me to unable to do react-native run-android. Always shows the message below when I try to run it:

info Running jetifier to migrate libraries to AndroidX. You can disable it using “–no-jetifier” flag. Jetifier found 970 file(s) to forward-jetify. Using 12 workers… info JS server already running. ‘adb’ is not recognized as an internal or external command, operable program or batch file. info Launching emulator… error Failed to launch emulator. Reason: No emulators found as an output of emulator -list-avds. warn Please launch an emulator manually or connect a device. Otherwise app may fail to launch. info Installing the app…

ERROR: JAVA_HOME is not set and no ‘java’ command could be found in your PATH.

Please set the JAVA_HOME variable in your environment to match the location of your Java installation.

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details. Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081

npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! Breakout@0.0.1 android: react-native run-android npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the Breakout@0.0.1 android script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\micha\AppData\Roaming\npm-cache_logs\2020-07-16T00_00_37_647Z-debug.log

Reproducible Demo

Don’t know how to reproduce it.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 5
  • Comments: 58

Most upvoted comments

This worked for me on windows 10:

Install android command line tools from android studio SDK manager (SDK tools tab). then add <YOUR_ANDROID_SDK_PATH>\cmdline-tools\latest\bin to PATH environment variables

This worked for me on windows 10:

Install android command line tools from android studio SDK manager (SDK tools tab). then add <YOUR_ANDROID_SDK_PATH>\cmdline-tools\latest\bin to PATH environment variables

Also work for MacOS. For me, I just download Android SDK Command-line Tools : Android Studio -> Preferences -> search for sdk -> Click SDK Tools -> Tick on Android SDK Command-line Tools-> Click OK to download. Then, the doctor should be able to find Android SDK. Screen Shot 2021-10-01 at 23 31 19

@its-kos I think I may have a solution for you, the same thing was troubling me and this approach fixed it. Little disclaimer, I’m using a mac…

Instead of installing the “latest” SDK Command-line Tools, install a specific version - 10.0 worked for me. You can achieve this by checking the “Show Package Details” at the bottom right of the window. After that, you need to supplement your $PATH so it contains:

<YOUR_ANDROID_SDK_PATH>\cmdline-tools\10.0\bin - note the exact version instead of the latest.

Hope this helps.

image

I have the same issue on Mac OS X 10.15.6 – I have loaded Android Studio which reports SDK is installed – and yet the doctor (version 4.12.0) cannot find it. (output follows)

I find it annoying that it’s idea of fixing things is to send me to a link that takes me to a page that has zero mention of the Android SDK – at the least it could tell me where it’s looking so that I could link the installed Android SDK into where it wants it…

I have set the ANDROID_HOME to the string that was in the Android Studio SDK settings pane, as well as to it’s parent directory. No Luck.

Please, where is the doctor looking for an sdk on the Mac??

Common
 ✓ Node.js
 ✓ yarn
 ✓ Watchman - Used for watching changes in the filesystem when in development mode

Android
 ✓ JDK
 ✓ Android Studio - Required for building and installing your app on Android
 ✖ Android SDK - Required for building and installing your app on Android
   - Versions found: N/A
   - Version supported: 28.0.3
 ✓ ANDROID_HOME

iOS
 ✓ Xcode - Required for building and installing your app on iOS
 ✓ CocoaPods - Required for installing iOS dependencies
 ● ios-deploy - Required for installing your app on a physical device with the CLI

Errors:   1
Warnings: 1

Usage
 › Press f to try to fix issues.
 › Press e to try to fix errors.
 › Press w to try to fix warnings.
 › Press Enter to exit.

This is what I did to fix it. I’m using react-native 0.72.4.

  1. Add cmdline-tools to your $PATH
export PATH=$ANDROID_HOME/cmdline-tools/<latest>/bin:$PATH # replace <latest> with the version you have
  1. Check if there are errors with your SDK
$ sdkmanager --list
Error: LinkageError occurred while loading main class com.android.sdklib.tool.sdkmanager.SdkManagerCli
	java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
  1. In my case, I have to download the correct java version based on the class file version reported by the error.
class file version
Java 8 52.0
Java 9 53.0
Java 10 54.0
Java 11 55.0
Java 12 56.0
Java 13 57.0
Java 14 58.0
Java 15 59.0
Java 16 60.0
Java 17 61.0
Java 18 62.0
Java 19 63.0
Java 20 64.0
Java 21 65.0
Java 22 66.0
  1. Done

Android SDK: Not Found still persists in 2023 despite all the recommendations aforementioned

    OS: macOS 13.2
    CPU: (12) x64 Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz
    Memory: 10.82 GB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 19.6.0 - /usr/local/bin/node
    Yarn: Not Found
    npm: 9.4.0 - /usr/local/bin/npm
    Watchman: 2023.02.13.00 - /usr/local/bin/watchman
  Managers:
    CocoaPods: 1.11.3 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
    Android SDK: Not Found
  IDEs:
    Android Studio: 2022.1 AI-221.6008.13.2211.9514443
    Xcode: 14.2/14C18 - /usr/bin/xcodebuild
  Languages:
    Java: 19.0.2 - /usr/local/opt/openjdk/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.1.0 => 18.1.0
    react-native: 0.70.6 => 0.70.6
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found```

This apparently does not work for me on Win 11. image image

I have everything and everything is on path. I dont know what else.

I still can’t understand how should i add the line, someone can tell me?

(export Users/user_name/Library/Android/sdk/cmdline-tools/latest/bin) - is it right?

cmdline-tools\latest\bin

worked for me, this is mac complete

vim ~/.zshrc

export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/emulator
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools\latest\bin

react-native doctor

@its-kos I think I may have a solution for you, the same thing was troubling me and this approach fixed it. Little disclaimer, I’m using a mac…

Instead of installing the “latest” SDK Command-line Tools, install a specific version - 10.0 worked for me. You can achieve this by checking the “Show Package Details” at the bottom right of the window. After that, you need to supplement your $PATH so it contains:

<YOUR_ANDROID_SDK_PATH>\cmdline-tools\10.0\bin - note the exact version instead of the latest.

Hope this helps.

image

After trying all of the solutions here, this was the only one that worked for my mac (with intel chip). Seems to be some issue with cmdline-tools v11

This is what I did to fix it. I’m using react-native 0.72.4.

  1. Add cmdline-tools to your $PATH
export PATH=$ANDROID_HOME/cmdline-tools/<latest>/bin:$PATH # replace <latest> with the version you have
  1. Check if there are errors with your SDK
$ sdkmanager --list
Error: LinkageError occurred while loading main class com.android.sdklib.tool.sdkmanager.SdkManagerCli
	java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
  1. In my case, I have to download the correct java version based on the class file version reported by the error.

class file version Java 8 52.0 Java 9 53.0 Java 10 54.0 Java 11 55.0 Java 12 56.0 Java 13 57.0 Java 14 58.0 Java 15 59.0 Java 16 60.0 Java 17 61.0 Java 18 62.0 Java 19 63.0 Java 20 64.0 Java 21 65.0 Java 22 66.0 4. Done

thanks too much! it realy help me . I try to install the java version 17 and then try to run npx react-native doctor, it works , and I spend 4hours to run yarn android , thanks gold , it finally run

I managed to solve it. Make sure you have the JAVA_HOME set up in both “User” and “System” variables. After adding both it managed to pick it up.

i try all the solutions of above, but the issue still persists, the error is:

knight@192 awasome % npx react-native doctor
Common
 ✓ Node.js - Required to execute JavaScript code
 ✓ yarn - Required to install NPM dependencies
 ✓ Watchman - Used for watching changes in the filesystem when in development mode

Android
 ✓ Adb - Required to verify if the android device is attached correctly
 ✓ JDK - Required to compile Java code
 ✓ Android Studio - Required for building and installing your app on Android
 ✖ Android SDK - Required for building and installing your app on Android
   - Versions found: N/A
   - Version supported: 33.0.0
 ✓ ANDROID_HOME - Environment variable that points to your Android SDK installation

iOS
 ✓ Xcode - Required for building and installing your app on iOS
 ✓ Ruby - Required for installing iOS dependencies
 ✓ CocoaPods - Required for installing iOS dependencies
 ● ios-deploy - Required for installing your app on a physical device with the CLI
 ✓ .xcode.env - File to customize Xcode environment

Errors:   1
Warnings: 1

Attempting to fix 1 issue...

Android
 ✖ Android SDK
   Read more about how to download Android SDK at https://reactnative.dev/docs/environment-setup?os=macos&platform=android&guide=native#android-sdk

npx react-native info:

knight@192 awasome % npx react-native info
info Fetching system and libraries information...
System:
  OS: macOS 11.3
  CPU: (8) arm64 Apple M1
  Memory: 95.38 MB / 8.00 GB
  Shell:
    version: "5.8"
    path: /bin/zsh
Binaries:
  Node:
    version: 16.19.1
    path: ~/.nvm/versions/node/v16.19.1/bin/node
  Yarn:
    version: 1.22.19
    path: /opt/homebrew/bin/yarn
  npm:
    version: 8.19.3
    path: ~/.nvm/versions/node/v16.19.1/bin/npm
  Watchman:
    version: 2023.03.06.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.12.0
    path: /Users/knight/.rvm/gems/ruby-2.7.2/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 21.2
      - iOS 15.2
      - macOS 12.1
      - tvOS 15.2
      - watchOS 8.3
  Android SDK: Not Found
IDEs:
  Android Studio: 2022.3 AI-223.8836.35.2231.10406996
  Xcode:
    version: 13.2.1/13C100
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 11.0.15
    path: /usr/bin/javac
  Ruby:
    version: 2.7.2
    path: /Users/knight/.rvm/rubies/ruby-2.7.2/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.4
    wanted: 0.72.4
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Hello Everyone, I am a Windows User.

I made all the steps above and beyond, just by accident, I ran the npm start without having all the steps of the react-native doctor and everything worked perfectly.

image

I just configured the ANDROID_HOME and added the sdk/platforms in the path like the react-native documentation: https://reactnative.dev/docs/environment-setup and forget about what the react-native doctor said.

image

Hope this help someone.

@osefatul ./gradlew commands are working fine, no errors

And now the SDK is not recognized again WTF

image

Went back to cmdline-tools/latest, still N/A

@its-kos I think I may have a solution for you, the same thing was troubling me and this approach fixed it. Little disclaimer, I’m using a mac… Instead of installing the “latest” SDK Command-line Tools, install a specific version - 10.0 worked for me. You can achieve this by checking the “Show Package Details” at the bottom right of the window. After that, you need to supplement your $PATH so it contains: <YOUR_ANDROID_SDK_PATH>\cmdline-tools\10.0\bin - note the exact version instead of the latest. Hope this helps. image

After trying all of the solutions here, this was the only one that worked for my mac (with intel chip). Seems to be some issue with cmdline-tools v11

This fixed it for me.