Error: Could not initialize class com.android.sdklib.repository.AndroidSdkHandler

馋奶兔 提交于 2019-11-28 19:09:34

I encountered this error while running the following command in macOS

./gradlew assembleRelease --stacktrace

and got the exact error posted. I solved the problem by setting $JAVA_HOME environment variable to your JDK installation. In my case I used the bundled JDK in Android Studio for macOS:

export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home"

for Windows, just add JAVA_HOME to your user or system variables pointing to

"C://Program Files/Java/jdk_1.x_"

folder and try running react-native run-android again.

This is a problem with JDK version 9. Android tools does not support building with Java 9 officially yet. And it has such problems.

Downgrading to Java version 8 will fix the problem.

On Ubuntu 18.04, this fixed the problem.

  1. Run this command

    sudo apt-get install openjdk-8-jdk

  2. Add this to ~/.bashrc

    export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"

  3. Restart your terminal or IDE.

Fixed the error by adding the following in .bash_profile

 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export ANDROID_HOME=/Users/saif-ams/MyFiles/applications/androidsdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

this because your classpath build tools in build.gradle root project is deprecated update like this for new android studio 3.1.2

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

and after that update your minimum sdk and build tools to latest and no problem again

The possible reason is the Gradle 's version and JDK's version is not matched.

At begin, My computer's gradle version is 4.10.1 and JDK is 12.

My solution is:

Download JDK 1.8 from oracle's website, set JAVA_HOME with JDK8 and It done

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!