Previously I had this is the beginning of my .gitlab-ci.yml file:
image: openjdk:8-jdk
variables:
ANDROID_HOME: "/androidsdk"
before_script:
- chmod +x ./gradlew
- ./scripts/setup-android-sdk.sh
Now I changed image to
image: openjdk:11-jdk
and I have this error in ci/cd:
Running with gitlab-runner 11.9.2 (fa86510e)
on Mobile Android app GitLab CI Runners LWfCCxFM
Using Docker executor with image openjdk:11-jdk ...
Pulling docker image openjdk:11-jdk ...
Using docker image sha256:0719902862f3aa23b1e419b86666aa31c22095b5269d9633599b714718675973 for openjdk:11-jdk ...
Running on runner-LWfCCxFM-project-3359-concurrent-0 via mobileandroidgitlabci...
00:01
Reinitialized existing Git repository in /builds/android/androidclient/.git/
00:02
Clean repository
Fetching changes...
fatal: remote origin already exists.
From https://gitlab.****.tech/android/androidclient
* [new ref] f21db547816f7f472eec299b3ec4cfdb6d9b5555 -> refs/pipelines/8861554
7475181b40..f21db54781 migrate_app_to_31_target_sdk_mob_11536 -> origin/migrate_app_to_31_target_sdk_mob_11536
Checking out f21db547 as migrate_app_to_31_target_sdk_mob_11536...
Skipping Git submodules setup
$ chmod +x ./gradlew
00:01
$ ./scripts/setup-android-sdk.sh
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 5 more
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 5 more
My setup-android-sdk script:
#!/usr/bin/env bash
ANDROID_COMPILE_SDK=`egrep 'compileSdkVersion [0-9]*' androidclient/build.gradle | awk '{print $2}'`
yes | ${ANDROID_HOME}/tools/bin/sdkmanager --licenses
${ANDROID_HOME}/tools/bin/sdkmanager "platform-tools" "platforms;android-${ANDROID_COMPILE_SDK}"
I think the problem in setup-android-sdk script. How could I change it? I just don't undertand how it works. I understand, that this is because of Java 11, javax was removed. But if I removing setup-android-sdk script from yml file, there is No more errors (but no compiled apk too). Please help
This question is not duplicate! And should be reopened