Android 支持库与编译sdk版本不兼容的影响

Android 支持库与编译sdk版本不兼容的影响,android,crash,android-support-library,ads,Android,Crash,Android Support Library,Ads,我有一个针对Android的air应用程序,我集成了google play services 12.0.0,以显示间隙和奖励视频广告。该应用程序没有multidex。上次发布后,我在Play Store控制台中有以下崩溃日志。崩溃日志对我没有太大帮助,并没有说找不到的类名。我跟踪了代码并试图找出相关的包,现在我怀疑CompileSDK版本(27)是否有不兼容的支持库(23.4.0)。这可能是造成这种错误的原因吗?为什么 java.lang.NoClassDefFoundError: at

我有一个针对Android的air应用程序,我集成了google play services 12.0.0,以显示间隙和奖励视频广告。该应用程序没有multidex。上次发布后,我在Play Store控制台中有以下崩溃日志。崩溃日志对我没有太大帮助,并没有说找不到的类名。我跟踪了代码并试图找出相关的包,现在我怀疑CompileSDK版本(27)是否有不兼容的支持库(23.4.0)。这可能是造成这种错误的原因吗?为什么

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)
java.lang.NoClassDefFoundError:
在com.google.android.gms.common.util.zzf.zza(未知来源)
在com.google.android.gms.common.util.zzf.zza(未知来源)
请访问com.google.android.gms.internal.zzyd。(来源不明)
在com.google.android.gms.internal.zzaog.zza(未知来源)
在com.google.android.gms.ads.internal.zzak.zza(未知来源)
位于com.google.android.gms.ads.internal.zzl.run(未知来源)
位于android.os.Handler.handleCallback(Handler.java:739)
位于android.os.Handler.dispatchMessage(Handler.java:95)
在android.os.Looper.loop(Looper.java:148)
位于android.app.ActivityThread.main(ActivityThread.java:7325)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:1230)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
原因:java.lang.ClassNotFoundException:
位于dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:511)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:469)

使用Android Studio分析apk文件后,我发现Android.support.v4.util.ArraySet不在apk文件中,Google Play Services Ads 12.0.0正在使用此方法。ArraySet在版本25.1.0中添加了支持库。因此,将支持库更新为25.1.1解决了我的问题


这个问题发生在我的团结计划中。在我做了上述更改之后,我使用了第三方admob插件,解决了我的问题

java.lang.ClassNotFoundException
似乎是一个
Multidex
问题。尝试。您正在测试哪个设备和操作系统版本?我自己无法创建问题。但我可以看到Android 5、6和7版本在游戏机上崩溃。
//compile(name: 'support-v4-24.1.1', ext:'aar')
compile "com.android.support:support-v4:25.1.1"