Search code examples
javaandroidavd-manager

Android avdmanager prints null and exits


I have downloaded the Android SDK from the official website, installed openjdk10, changed the variable DEFAULT_JVM_OPTS in the avdmanager shell file to :

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

in order for avdmanager to work with Java 10, set the following environment variables in my ~/.zshrc:

  • export ANDROID_HOME="$HOME/Downloads/android/"
  • export ANDROID_SDK_HOME="$HOME/.android"
  • export JAVA_HOME='/usr/lib/jvm/java-10-openjdk'

and downloaded an SDK using the command:

$ANDROID_HOME/tools/bin/sdkmanager --verbose "system-images;android-25;google_apis;x86"

However, when I try to create a new AVD via the command:

$ANDROID_HOME/tools/bin/avdmanager create avd -n test -k "system-images;android-25;google_apis;x86"

it just prints null and exits. Even If when I run

$ANDROID_HOME/tools/bin/avdmanager

all it does it just prints null.

If it may help, I changed the avdmanager file again and added a line that prints the arguments the file prepares which it then passes to the $JAVACMD command. The arguments look like this:

-Dcom.android.sdklib.toolsdir=/home/aonemd/Downloads/android/tools -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee -classpath /home/aonemd/Downloads/android/tools/lib/dvlib-26.0.0-dev.jar:/home/aonemd/Downloads/android/tools/lib/jimfs-1.1.jar:/home/aonemd/Downloads/android/tools/lib/jsr305-1.3.9.jar:/home/aonemd/Downloads/android/tools/lib/repository-26.0.0-dev.jar:/home/aonemd/Downloads/android/tools/lib/j2objc-annotations-1.1.jar:/home/aonemd/Downloads/android/tools/lib/layoutlib-api-26.0.0-dev.jar:/home/aonemd/Downloads/android/tools/lib/gson-2.3.jar:/home/aonemd/Downloads/android/tools/lib/httpcore-4.2.5.jar:/home/aonemd/Downloads/android/tools/lib/commons-logging-1.1.1.jar:/home/aonemd/Downloads/android/tools/lib/commons-compress-1.12.jar:/home/aonemd/Downloads/android/tools/lib/annotations-26.0.0-dev.jar:/home/aonemd/Downloads/android/tools/lib/error_prone_annotations-2.0.18.jar:/home/aonemd/Downloads/android/tools/lib/animal-sniffer-annotations-1.14.jar:/home/aonemd/Downloads/android/tools/lib/httpclient-4.2.6.jar:/home/aonemd/Downloads/android/tools/lib/commons-codec-1.6.jar:/home/aonemd/Downloads/android/tools/lib/common-26.0.0-dev.jar:/home/aonemd/Downloads/android/tools/lib/kxml2-2.3.0.jar:/home/aonemd/Downloads/android/tools/lib/httpmime-4.1.jar:/home/aonemd/Downloads/android/tools/lib/annotations-12.0.jar:/home/aonemd/Downloads/android/tools/lib/sdklib-26.0.0-dev.jar:/home/aonemd/Downloads/android/tools/lib/guava-22.0.jar com.android.sdklib.tool.AvdManagerCli

Also, the ~/.android directory contains only these three files/folders:

  • adbkey
  • adbkey.pub
  • cache/

Is there something I'm missing here?


Solution

  • I have found out where the problem is. The variable DEFAULT_JVM_OPTS should be

    DEFAULT_JVM_OPTS='"-Dcom.android.sdkmanager.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'
    

    instead of

    DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'