We deleted out all of the old Google Admob files and installed the latest Google AdMob Plugin:
GoogleMobileAds-v5.3.0.unitypackage
We followed the
documentation
and including executing Assets > External Dependency Manager > Android Resolver > Resolve but we will get the bellow error when building the APK.
How do we resolve?
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.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
I just installed AdMob and was getting the same exception (from sdkmanager.bat). It appears to be because Unity is using a different version of the Java SDK than what it should be.
If you look in Unity\2020.1.14f1\Editor\Data\PlaybackEngines\AndroidPlayer\SDK ools\bin\sdkmanager.bat
(using the Android SDK path from Edit | Preferences | External Tools), the script tries to find the SDK by looking at the JAVA_HOME environment variable first, and if that doesn’t exist, it tries to find it from java.exe. In my case, I had some random Java.exe in the PATH, and Unity was using this instead of the SDK specified in the preferences.
So you have 2 reasonable options:
Set a JAVA_HOME system environment variable to Unity’s Android SDK.
Put Unity’s Android SDK in the PATH earlier than other Javas.
Or you can do what I did:
3. Add the following line to the top of sdkmanager.bat
set JAVA_HOME=%~dp0..\..\..\OpenJDK