0

在 Jelly Bean 4.2.2 上,我在MediaRouter更改设备上的音量时在课堂上崩溃了。

logcat 看起来像这样:

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

我尝试添加音量更改回调,如下所示:

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

但我仍然会崩溃。我可以轻松地在 4.2.2 上重现该问题,但无法在早期版本的 Android 上重现该问题,所以我感觉这可能是 Android 本身的一个错误。

我有两个问题:

  1. 是否有解决此问题的方法或解决方法?
  2. 我将如何/在哪里向 Google 报告此问题(或检查它是否已被报告/修复)?

谢谢。

4

1 回答 1

0

尝试在调试器中运行它并在分配(a)值后设置断点。当调试器暂停时,检查变量的值。如果它读取“null”,那么它没有被分配适当的值或没有被初始化。对不起,如果这有点生硬;如有必要,我将更改此答案。

于 2013-05-28T16:50:02.380 回答