I have a air application for Android and I have integrated google play services 12.0.0 to show interstitial and rewarded video ads. App has no multidex. I am having the following crash log in Play Store Console after last publish. Crash log is not so helpful for me, is not saying the class name which is not found. I traced the code and trying to figure out related packages and now I am suspicious about having incompatible support library(23.4.0) with the CompileSdkVersion(27). Can it be the reason for that kind of error and why ?
java.lang.NoClassDefFoundError:
at com.google.android.gms.common.util.zzf.zza (Unknown Source)
at com.google.android.gms.common.util.zzf.zza (Unknown Source)
at com.google.android.gms.internal.zzyd.<clinit> (Unknown Source)
at com.google.android.gms.internal.zzaog.zza (Unknown Source)
at com.google.android.gms.ads.internal.zzak.zza (Unknown Source)
at com.google.android.gms.ads.internal.zzl.run (Unknown Source)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:148)
at android.app.ActivityThread.main (ActivityThread.java:7325)
at java.lang.reflect.Method.invoke (Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:1230)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1120)
Caused by: java.lang.ClassNotFoundException:
at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass (ClassLoader.java:511)
at java.lang.ClassLoader.loadClass (ClassLoader.java:469)
After analyzing apk file with Android Studio, I found that android.support.v4.util.ArraySet is not in the apk file and Google Play Services Ads 12.0.0 is using this method. ArraySet is added support library in version 25.1.0. So, updating support library to 25.1.1 solved my problem.