Status Update
Comments
mo...@gmail.com <mo...@gmail.com>
an...@google.com <an...@google.com> #2
I am having this issue as well. I have tried several different work-arounds and doing research.
1. setting JAVA_OPTS=JAVA_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modulesjava.se.ee (this was recommended by a lot of places, but it can't find java.se.ee )
2. verify I am using JDK 8 (I have tried in a VM: JDK 8u241, JDK 8u202 (last BCL), Amazon Corretto 8.242.08.1)
3. verify that the class com.android.sdklib.tool.sdkmanager.SdkManagerCli exists (in tools\lib\sdklib\libsdkmanager_lib.jar)
The issue is that the CLASSPATH is not setup correctly to be able to find the sdkmanager dependencies. In the SDK Tools version of sdkmanager.bat, all the required jar files were specified in the sdkmanager.bat file:
set CLASSPATH=%APP_HOME%\lib\dvlib-26.0.0-dev.jar;%APP_HOME%\lib\jimfs-1.1.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\repository-26.0.0-dev.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\layoutlib-api-26.0.0-dev.jar;%APP_HOME%\lib\gson-2.3.jar;%APP_HOME%\lib\httpcore-4.2.5.jar;%APP_HOME%\lib\commons-logging-1.1.1.jar;%APP_HOME%\lib\commons-compress-1.12.jar;%APP_HOME%\lib\annotations-26.0.0-dev.jar;%APP_HOME%\lib\error_prone_annotations-2.0.18.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar;%APP_HOME%\lib\httpclient-4.2.6.jar;%APP_HOME%\lib\commons-codec-1.6.jar;%APP_HOME%\lib\common-26.0.0-dev.jar;%APP_HOME%\lib\kxml2-2.3.0.jar;%APP_HOME%\lib\httpmime-4.1.jar;%APP_HOME%\lib\annotations-12.0.jar;%APP_HOME%\lib\sdklib-26.0.0-dev.jar;%APP_HOME%\lib\guava-22.0.jar
In the newer command-line tools build, the sdkmanager.bat has a much simpler definition of CLASSPATH
set CLASSPATH=%APP_HOME%\lib\/sdkmanager-classpath.jar
I am still trying to figure out how this is supposed to work. sdkmanager-classpath.jar is in tools\lib\_\sdkmanager-classpath.jar. This jar file only contains a META-INF/MANIFEST.MF file with the following contents:
Class-Path:
sdklib/libsdkmanager_lib.jar
sdklib/sdklib.jar
annotations/libannotations.jar
common/common.jar
external/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
external/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1.jar
external/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
external/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
external/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar
external/org/checkerframework/checker-qual/2.5.5/checker-qual-2.5.5.jar
external/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
external/com/google/guava/guava/27.1-jre/guava-27.1-jre.jar
external/kotlin-plugin-ij/Kotlin/kotlinc/lib/kotlin-stdlib.jar
device_validator/dvlib.jar
layoutlib-api/layoutlib-api.jar
external/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
external/org/jetbrains/annotations/13.0/annotations-13.0.jar
repository/repository.jar
external/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar
external/org/apache/commons/commons-compress/1.12/commons-compress-1.12.jar
external/com/sun/istack/istack-commons-runtime/3.0.7/istack-commons-runtime-3.0.7.jar
external/com/sun/xml/fastinfoset/FastInfoset/1.2.15/FastInfoset-1.2.15.jar
external/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar
external/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar
external/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3.1.jar
external/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.jar
external/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runtime-2.3.1.jar
external/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
external/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
external/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
external/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
external/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
in sdkmanager-bat, java is executed with -classpath "%CLASSPATH%" but this is not working.
If I simulate was as being done in the old SDK tools version of the file and include all these jar files in the sdkmanager.bat like this:
set APP_LIB=%APP_HOME%\lib
set CLASSPATH=%APP_LIB%\sdklib/libsdkmanager_lib.jar;%APP_LIB%\sdklib/sdklib.jar;%APP_LIB%\annotations/libannotations.jar;%APP_LIB%\common/common.jar;%APP_LIB%\external/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar;%APP_LIB%\external/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1.jar;%APP_LIB%\external/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar;%APP_LIB%\external/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_LIB%\external/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar;%APP_LIB%\external/org/checkerframework/checker-qual/2.5.5/checker-qual-2.5.5.jar;%APP_LIB%\external/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar;%APP_LIB%\external/com/google/guava/guava/27.1-jre/guava-27.1-jre.jar;%APP_LIB%\external/kotlin-plugin-ij/Kotlin/kotlinc/lib/kotlin-stdlib.jar;%APP_LIB%\device_validator/dvlib.jar;%APP_LIB%\layoutlib-api/layoutlib-api.jar;%APP_LIB%\external/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar;%APP_LIB%\external/org/jetbrains/annotations/13.0/annotations-13.0.jar;%APP_LIB%\repository/repository.jar;%APP_LIB%\external/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar;%APP_LIB%\external/org/apache/commons/commons-compress/1.12/commons-compress-1.12.jar;%APP_LIB%\external/com/sun/istack/istack-commons-runtime/3.0.7/istack-commons-runtime-3.0.7.jar;%APP_LIB%\external/com/sun/xml/fastinfoset/FastInfoset/1.2.15/FastInfoset-1.2.15.jar;%APP_LIB%\external/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar;%APP_LIB%\external/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar;%APP_LIB%\external/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3.1.jar;%APP_LIB%\external/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.jar;%APP_LIB%\external/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runtime-2.3.1.jar;%APP_LIB%\external/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar;%APP_LIB%\external/commons-logging/commons-logging/1.2/commons-logging-1.2.jar;%APP_LIB%\external/commons-codec/commons-codec/1.10/commons-codec-1.10.jar;%APP_LIB%\external/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar;%APP_LIB%\external/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
Then sdkmanager.bat finds the correct startup class.
If I don't specify --sdk_root=<the_root>, then I get this exception:
Warning: Could not create settings
java.lang.IllegalArgumentException
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.java:428)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:152)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:134)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
If I specify --sdk_root=<the_root>, then it works correctly (again with the hacked CLASSPATH).
So .... what is wrong with this line and what is it supposed to do?
set CLASSPATH=%APP_HOME%\lib\/sdkmanager-classpath.jar
FYI, this is being reported in several different placed. Here is one.
https://stackoverflow.com/questions/60544671/cannot-install-sdkmanager-in-windows-10
Could someone from Google respond to this issue?
1. setting JAVA_OPTS=JAVA_OPTS=-XX:+IgnoreUnrecognizedVMOptions --add-modules
2. verify I am using JDK 8 (I have tried in a VM: JDK 8u241, JDK 8u202 (last BCL), Amazon Corretto 8.242.08.1)
3. verify that the class com.android.sdklib.tool.sdkmanager.SdkManagerCli exists (in tools\lib\sdklib\libsdkmanager_lib.jar)
The issue is that the CLASSPATH is not setup correctly to be able to find the sdkmanager dependencies. In the SDK Tools version of sdkmanager.bat, all the required jar files were specified in the sdkmanager.bat file:
set CLASSPATH=%APP_HOME%\lib\dvlib-26.0.0-dev.jar;%APP_HOME%\lib\jimfs-1.1.jar;%APP_HOME%\lib\jsr305-1.3.9.jar;%APP_HOME%\lib\repository-26.0.0-dev.jar;%APP_HOME%\lib\j2objc-annotations-1.1.jar;%APP_HOME%\lib\layoutlib-api-26.0.0-dev.jar;%APP_HOME%\lib\gson-2.3.jar;%APP_HOME%\lib\httpcore-4.2.5.jar;%APP_HOME%\lib\commons-logging-1.1.1.jar;%APP_HOME%\lib\commons-compress-1.12.jar;%APP_HOME%\lib\annotations-26.0.0-dev.jar;%APP_HOME%\lib\error_prone_annotations-2.0.18.jar;%APP_HOME%\lib\animal-sniffer-annotations-1.14.jar;%APP_HOME%\lib\httpclient-4.2.6.jar;%APP_HOME%\lib\commons-codec-1.6.jar;%APP_HOME%\lib\common-26.0.0-dev.jar;%APP_HOME%\lib\kxml2-2.3.0.jar;%APP_HOME%\lib\httpmime-4.1.jar;%APP_HOME%\lib\annotations-12.0.jar;%APP_HOME%\lib\sdklib-26.0.0-dev.jar;%APP_HOME%\lib\guava-22.0.jar
In the newer command-line tools build, the sdkmanager.bat has a much simpler definition of CLASSPATH
set CLASSPATH=%APP_HOME%\lib\/sdkmanager-classpath.jar
I am still trying to figure out how this is supposed to work. sdkmanager-classpath.jar is in tools\lib\_\sdkmanager-classpath.jar. This jar file only contains a META-INF/MANIFEST.MF file with the following contents:
Class-Path:
sdklib/libsdkmanager_lib.jar
sdklib/sdklib.jar
annotations/libannotations.jar
common/common.jar
external/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
external/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1.jar
external/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar
external/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar
external/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar
external/org/checkerframework/checker-qual/2.5.5/checker-qual-2.5.5.jar
external/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar
external/com/google/guava/guava/27.1-jre/guava-27.1-jre.jar
external/kotlin-plugin-ij/Kotlin/kotlinc/lib/kotlin-stdlib.jar
device_validator/dvlib.jar
layoutlib-api/layoutlib-api.jar
external/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar
external/org/jetbrains/annotations/13.0/annotations-13.0.jar
repository/repository.jar
external/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar
external/org/apache/commons/commons-compress/1.12/commons-compress-1.12.jar
external/com/sun/istack/istack-commons-runtime/3.0.7/istack-commons-runtime-3.0.7.jar
external/com/sun/xml/fastinfoset/FastInfoset/1.2.15/FastInfoset-1.2.15.jar
external/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar
external/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar
external/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3.1.jar
external/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.jar
external/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runtime-2.3.1.jar
external/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar
external/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
external/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
external/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
external/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
in sdkmanager-bat, java is executed with -classpath "%CLASSPATH%" but this is not working.
If I simulate was as being done in the old SDK tools version of the file and include all these jar files in the sdkmanager.bat like this:
set APP_LIB=%APP_HOME%\lib
set CLASSPATH=%APP_LIB%\sdklib/libsdkmanager_lib.jar;%APP_LIB%\sdklib/sdklib.jar;%APP_LIB%\annotations/libannotations.jar;%APP_LIB%\common/common.jar;%APP_LIB%\external/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar;%APP_LIB%\external/com/google/errorprone/error_prone_annotations/2.3.1/error_prone_annotations-2.3.1.jar;%APP_LIB%\external/com/google/guava/failureaccess/1.0.1/failureaccess-1.0.1.jar;%APP_LIB%\external/com/google/guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;%APP_LIB%\external/com/google/j2objc/j2objc-annotations/1.1/j2objc-annotations-1.1.jar;%APP_LIB%\external/org/checkerframework/checker-qual/2.5.5/checker-qual-2.5.5.jar;%APP_LIB%\external/org/codehaus/mojo/animal-sniffer-annotations/1.17/animal-sniffer-annotations-1.17.jar;%APP_LIB%\external/com/google/guava/guava/27.1-jre/guava-27.1-jre.jar;%APP_LIB%\external/kotlin-plugin-ij/Kotlin/kotlinc/lib/kotlin-stdlib.jar;%APP_LIB%\device_validator/dvlib.jar;%APP_LIB%\layoutlib-api/layoutlib-api.jar;%APP_LIB%\external/net/sf/kxml/kxml2/2.3.0/kxml2-2.3.0.jar;%APP_LIB%\external/org/jetbrains/annotations/13.0/annotations-13.0.jar;%APP_LIB%\repository/repository.jar;%APP_LIB%\external/com/google/jimfs/jimfs/1.1/jimfs-1.1.jar;%APP_LIB%\external/org/apache/commons/commons-compress/1.12/commons-compress-1.12.jar;%APP_LIB%\external/com/sun/istack/istack-commons-runtime/3.0.7/istack-commons-runtime-3.0.7.jar;%APP_LIB%\external/com/sun/xml/fastinfoset/FastInfoset/1.2.15/FastInfoset-1.2.15.jar;%APP_LIB%\external/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar;%APP_LIB%\external/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar;%APP_LIB%\external/org/glassfish/jaxb/txw2/2.3.1/txw2-2.3.1.jar;%APP_LIB%\external/org/jvnet/staxex/stax-ex/1.8/stax-ex-1.8.jar;%APP_LIB%\external/org/glassfish/jaxb/jaxb-runtime/2.3.1/jaxb-runtime-2.3.1.jar;%APP_LIB%\external/com/google/code/gson/gson/2.8.5/gson-2.8.5.jar;%APP_LIB%\external/commons-logging/commons-logging/1.2/commons-logging-1.2.jar;%APP_LIB%\external/commons-codec/commons-codec/1.10/commons-codec-1.10.jar;%APP_LIB%\external/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar;%APP_LIB%\external/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
Then sdkmanager.bat finds the correct startup class.
If I don't specify --sdk_root=<the_root>, then I get this exception:
Warning: Could not create settings
java.lang.IllegalArgumentException
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.<init>(SdkManagerCliSettings.java:428)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:152)
at com.android.sdklib.tool.sdkmanager.SdkManagerCliSettings.createSettings(SdkManagerCliSettings.java:134)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:57)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
If I specify --sdk_root=<the_root>, then it works correctly (again with the hacked CLASSPATH).
So .... what is wrong with this line and what is it supposed to do?
set CLASSPATH=%APP_HOME%\lib\/sdkmanager-classpath.jar
FYI, this is being reported in several different placed. Here is one.
Could someone from Google respond to this issue?
Description
What
User experience
What type of Android issue is this?
Accessibility
What steps would let us observe this issue?
What was the effect of this issue on your device usage, such as lost time or work?
High
When
Time and frequency
Time when bug report was triggered: Mar 18, 2025 3:17 AM GMT+01:00
How often has this happened?
Every time
Where
Component
Originating component: <not visible> (1684638)
Build and device data
- Build Number: google/oriole_beta/oriole:16/BP22.250221.010/13193326:user/release-keys
(Note: It is the build when sending this report. For exact build reference, please see the attached bugreport.)
Debugging information
Services Google Play
com.google.android.gms
Version 250863035 (25.08.63 (260400-736581292))
System App (Updated)
Android System WebView
com.google.android.webview
Version 694313733 (133.0.6943.137)
System App (Updated)
Network operator: BYTEL
SIM operator: Bouygues Telecom
Filed by Android Beta Feedback. Version (Updated): 2.46-betterbug.external_20241023_RC01 (DOGFOOD)https://developer.android.com/preview/feedback#feedback-app .
To learn more about our feedback process, please visit