2013-07-14 6 views
0

Google Play 게임 서비스 업적을 ​​추가 한 후 많은 고객이이 오류가 발생합니다. 우리의 애플 리케이션. 트레이스에는 두 가지 유형이 있는데,이 최신 추적 (아래의 두 번째 추적)은 4.0.4 디바이스에서 android.app.Application.onLowMemory()로 시작합니다.java.lang.ClassCastException : com.google.android.gms.common.images.e를 android.content.ComponentCallbacks에 전송할 수 없습니다.

나는 추적에 의아해합니다. google-play-services_lib이 com.google.android.gms.common.images.e의 인스턴스를 (그 무엇이든지) 마치 ComponentCallbacks 인 것처럼 등록하면 앱이 해당 인스턴스의 메소드를 호출하려고 할 때 캐스트 예외가 발생 했습니까? 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) 

답변

0

Google Play 게임 서비스 ImageManager의 버그입니다.

잠금 해제 된 업적에 대한 이미지를로드하기 위해 ImageManager loadImage()를 사용하고있었습니다. 예외를 발생시킨 클래스가 ImageManager 패키지 (android.gms.common.images)에 있기 때문에 ImageManager 사용을 중지하도록 앱을 업데이트 해 보았습니다 (APK 이미지 파일을 사용하도록 전환됨). 버그가 멈 췄기 때문에 그것이 원인이라고 생각합니다.

+0

기기 회전을 허용하고 있습니까? 내가 물어 보는 이유는 오리엔테이션 변경을 잘못 처리 할 때 캐스트 클래스 예외 (내 조각으로)를보고 있다는 것입니다. 귀하의 문제는 다릅니다 (그러나 유사하지는 않음). – IanB

+0

@Sheldon 우리의 활동은 android : screenOrientation = "sensorLandscape"android : configChanges = "orientation"을 설정합니다. 우리의 활동 설정이 gplay 서비스의 조각에 영향을 미칠지 모르겠습니다. ImageManager를 사용하지 않을 때 크래시가 멈추었을 때 gplay가 방향 변경을 제대로 처리하지 못했을 때 관련되지 않았다고 생각할 수 있습니다. 그럼 다시 이상한 일 이네. :) – mwk

관련 문제