Error when trying to build for Android

i’m trying to build a project. i marked Android in the build settings, i added the jdk (version 8 cause i heard 9 makes problems), add the sdk using android studio with various versions of android and even tried using an sdk folder from another pc where building my project worked. i changed the project name and everything… but i keep getting an error when i build:

CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct.
C:/Users/Flux/AppData/Local/Android/sdk\tools\bin\avdmanager.bat list target -c

stderr[
Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:213)
at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:200)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
… 5 more
]
stdout[

]
exit code: 1
UnityEditor.Android.PostProcessor.CancelPostProcess.AbortBuild (System.String title, System.String message, System.Exception ex) (at <388bfc6933e8438da93bcd874bbbeee6>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <388bfc6933e8438da93bcd874bbbeee6>:0)
UnityEditor.Android.PostProcessAndroidPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <388bfc6933e8438da93bcd874bbbeee6>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <388bfc6933e8438da93bcd874bbbeee6>:0)
UnityEditor.PostprocessBuildPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:87)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

doesn’t seem to be the same errors at all… i don’t think these are relevant

okay, i deleted all of the SDKs i had using android studio and reinstalled them all. i also deleted my JDK (apparently there were some sort of remnants from the JDK 9 i had, even though i deleted it and switched to 8) using geek.exe. everything works now! woo!

Similar to above, after uninstalling JDK 9 to install JDK 8 (and rebooting my computer) the issue was solved.

sometime this error occurs. restarting unity worked for me. (Unity 2020.3.37)

e: - The disk on which the editors are located.
set JAVA_HOME = Java folder, I recommend using the folder from Unity versions up to 2021.
set work_dir= The folder in which all your installed editors are located.

My BAT/CMD update file:

e:
set JAVA_HOME=E:\Unity\\2020.3.43f1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\
set work_dir="E:\Unity\"
for /D %%B in (%work_dir%\*) do (

set ANDROID_HOME=%%B\Editor\Data\PlaybackEngines\AndroidPlayer\
cd %%B\Editor\Data\PlaybackEngines\AndroidPlayer\SDK\tools\bin\
echo.> %USERPROFILE%\.android\repositories.cfg

cmd /C sdkmanager --update
cmd /C sdkmanager "platform-tools" "platforms;android-29"
cmd /C sdkmanager "platform-tools" "platforms;android-30"
cmd /C sdkmanager "platform-tools" "platforms;android-31"
cmd /C sdkmanager "platform-tools" "platforms;android-32"
cmd /C sdkmanager "platform-tools" "platforms;android-33"
cmd /C sdkmanager "platform-tools" "platforms;android-34"
)
pause

If you encounter this try using the sdkmanager inside the <android_sdk_root> / cmdline-tools / <version> / bin folder

1 Like