java.lang.ClassCastException:com.google.android.gms.common.images.e不能强制转换为android.content.ComponentCallbacks

java.lang.ClassCastException:com.google.android.gms.common.images.e不能强制转换为android.content.ComponentCallbacks,android,google-play-services,Android,Google Play Services,在将Google Play game services成就添加到我们的应用程序后,我们从大量客户那里得到了这个错误。有两种类型的跟踪,最新的一种(下面的第二种跟踪)从4.0.4设备上的android.app.Application.onLowMemory()开始 我被这痕迹弄糊涂了。google-play-services_lib是否可以注册com.google.android.gms.common.images.e(无论是什么)的实例,就好像它是一个ComponentCallbacks,那么当

在将Google Play game services成就添加到我们的应用程序后,我们从大量客户那里得到了这个错误。有两种类型的跟踪,最新的一种(下面的第二种跟踪)从4.0.4设备上的android.app.Application.onLowMemory()开始

我被这痕迹弄糊涂了。google-play-services_lib是否可以注册com.google.android.gms.common.images.e(无论是什么)的实例,就好像它是一个ComponentCallbacks,那么当应用程序尝试调用该实例上的方法时,就会触发类强制转换异常?由于onConfigurationChanged()或onLowMemory(),我们看到的这两种类型的堆栈都是

有人见过这个例外吗?自从将google-play-services_lib添加到我们的项目中(我们用它来取得成就)以来,我已经得到过几次了。当我们的应用程序处于非活动状态时会发生这种情况,可能是暂停时(例如Home按钮),尽管在拔下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)

看起来这是Google Play game services ImageManager中的一个bug


我们使用ImageManager loadImage()加载未锁定成就的图像。因为导致异常的类在ImageManager包(android.gms.common.images)中,所以我们尝试更新应用程序以停止使用ImageManager(切换到使用APK图像文件)。错误已经停止,所以我想这就是原因

您仍然允许设备旋转吗?我问这个问题的原因是,当我错误地处理方向更改时,我看到了cast类异常(在我自己的片段中)。您的问题不同(但并非不同)。@Sheldon我们的活动设置了android:screenOrientation=“Sensor横向”android:configChanges=“orientation”。我不知道我们的活动设置是否会影响gplay服务的片段。当我们停止使用ImageManager时,崩溃肯定停止了,您可能会想,如果gplay没有正确处理方向的更改,那就没有关系了。这又是一件奇怪的事:)