在将 Google Play 游戏服务成就添加到我们的应用程序后,我们从大量客户那里收到此错误。有两种类型的跟踪,最新的一种(下面的第二个跟踪)从 4.0.4 设备上的 android.app.Application.onLowMemory() 开始。
我对痕迹感到困惑。google-play-services_lib 是否可以像 ComponentCallbacks 一样注册 com.google.android.gms.common.images.e 的实例(无论是什么),然后当应用程序尝试在该实例上调用该类的方法时强制转换异常被触发?我们看到的两种类型的堆栈——由于 onConfigurationChanged() 或 onLowMemory()——都是http://developer.android.com/reference/android/content/ComponentCallbacks.html的方法
有人见过这个例外吗?自从将 google-play-services_lib 添加到我们的项目(我们将其用于成就)以来,我已经得到了几次。它发生在我们的应用程序未处于活动状态时,也许是在暂停时(例如主页按钮),尽管它似乎在拔下 USB 时发生 - 因为配置更改在路径中,可能设备在处理时切换纵向/横向?它不容易重现,所以我不确定发生了什么。
16:05:35.587 DEBUG: onStop: disconnecting clients. lq
(... 17 seconds elapse with no events related to the app)
16:05:52.292
java.lang.ClassCastException: com.google.android.gms.common.images.e cannot be cast to android.content.ComponentCallbacks
at android.app.Application.onConfigurationChanged(Application.java:91)
at android.app.ActivityThread.performConfigurationChanged(ActivityThread.java:3800)
at android.app.ActivityThread.handleConfigurationChanged(ActivityThread.java:3973)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1348)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
18:00:46.230 WTF: errorNoNotify: Exception "main": java.lang.ClassCastException: com.google.android.gms.common.images.e cannot be cast to android.content.ComponentCallbacks android.app.Application.onLowMemory(Application.java:99) hm
java.lang.ClassCastException: com.google.android.gms.common.images.e cannot be cast to android.content.ComponentCallbacks
at android.app.Application.onLowMemory(Application.java:99)
at android.app.ActivityThread.handleLowMemory(ActivityThread.java:3690)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1233)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4424)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)