2013-05-28 2 views
0

Jelly Bean 4.2.2에서 장치의 볼륨을 변경할 때 MediaRouter 클래스에서 충돌이 발생합니다.MediaRouter.dispatchRouteVolumeChanged의 Null 포인터 예외

로그 캣은 다음과 같습니다

public void onRouteVolumeChanged(MediaRouter router, MediaRouter.RouteInfo info) { 
    Log.d(TAG, "onRouteVolumeChanged: info=" + info); 
} 

을하지만 난 여전히 충돌을 얻을 :

E/AndroidRuntime(15239): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:768) 
E/AndroidRuntime(15239): at android.os.Handler.handleCallback(Handler.java:725) 
E/AndroidRuntime(15239): at android.os.Handler.dispatchMessage(Handler.java:92) 
E/AndroidRuntime(15239): at android.os.Looper.loop(Looper.java:137) 
E/AndroidRuntime(15239): at android.app.ActivityThread.main(ActivityThread.java:5041) 
E/AndroidRuntime(15239): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(15239): at java.lang.reflect.Method.invoke(Method.java:511) 
E/AndroidRuntime(15239): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
E/AndroidRuntime(15239): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
E/AndroidRuntime(15239): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(15239): Caused by: java.lang.NullPointerException 
E/AndroidRuntime(15239): at android.media.MediaRouter.dispatchRouteVolumeChanged(MediaRouter.java:723) 
E/AndroidRuntime(15239): at android.media.MediaRouter.systemVolumeChanged(MediaRouter.java:742) 
E/AndroidRuntime(15239): at android.media.MediaRouter$VolumeChangeReceiver.onReceive(MediaRouter.java:2087) 
E/AndroidRuntime(15239): at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:758) 
E/AndroidRuntime(15239): ... 9 more 

나는 다음과 같이 볼륨 변경 콜백을 추가했습니다. 4.2.2에서는 문제를 쉽게 재현 할 수 있지만 이전 버전의 Android에서 재현 할 수 없었기 때문에 Android 자체에서 버그 일 수 있다는 느낌이 들었습니다.

  1. 이 문제에 대한 수정 또는 해결 방법이 있나요 :

    나는이 개 질문이?

  2. 어떻게이 문제를 Google에 신고하겠습니까 (또는 이미 신고되었거나 수정되었는지 확인).

감사합니다.

답변

0

(a) 값을 지정한 후에 디버거에서 실행하고 중단 점을 설정하십시오. 디버거가 일시 중지 된 동안 변수의 값을 확인하십시오. 「null」이라고 읽으면 (자), 적절한 값이 할당되어 있지 않은가, 초기화되어 있지 않다 미안하지만 이것은 약간 둔탁합니다. 필요한 경우이 대답을 바꿀 것입니다.

+0

답장을 보내 주셔서 감사합니다. 나는 NPE를 확인하는 방법을 알고 있지만 이것은 내 코드가 아니라 [MediaRouter] (http://developer.android.com/reference/android/media/MediaRouter.html) 클래스 (API 16) 안에 있습니다. – gcl1

+0

라이브러리 소스 코드가 수정 되었습니까? 검사하는 또 다른 방법은 API 16 라이브러리의 해당 섹션을 다운로드하고 바꿀 수 있다는 것입니다. 다음은 다른 패키지와 별도로 API 16을 다운로드 할 수있는 곳입니다. http://www.hariadi.org/android/manual-download-of-android-sdk-components/ – user1546859