我有一个非常奇怪的 NullPointerException (仅在 Android 4.1 上发生,既不在 ICS 也不在 Jelly Bean 4.2 上)编辑:仅在三星触控设备上。
按下按钮时,我从我的一个内部启动一个 ACTION_CALL 活动,如下所示:
final Uri dialInFormat = Uri.parse("tel:" + number + ",," + code + "#");
log.info("Starting call: " + dialInFormat);
Intent intent = new Intent(Intent.ACTION_CALL, dialInFormat);
startActivity(intent);
电话活动显示并拨打号码。但是一旦我完成通话,回到我的应用程序并触摸屏幕,就会出现以下错误并且应用程序被杀死:
(有时错误发生得更早,而电话仍在拨号)
02-10 13:55:37.470: E/UCE(13354): Uncaught Exception
02-10 13:55:37.470: E/UCE(13354): java.lang.NullPointerException
02-10 13:55:37.470: E/UCE(13354): at android.view.ViewRootImpl.drawAccessibilityFocusedDrawableIfNeeded(ViewRootImpl.java:2431)
02-10 13:55:37.470: E/UCE(13354): at android.view.ViewRootImpl.onHardwarePostDraw(ViewRootImpl.java:2059)
02-10 13:55:37.470: E/UCE(13354): at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1182)
02-10 13:55:37.470: E/UCE(13354): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2275)
02-10 13:55:37.470: E/UCE(13354): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2147)
02-10 13:55:37.470: E/UCE(13354): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1958)
02-10 13:55:37.470: E/UCE(13354): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1112)
02-10 13:55:37.470: E/UCE(13354): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4518)
02-10 13:55:37.470: E/UCE(13354): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
02-10 13:55:37.470: E/UCE(13354): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
02-10 13:55:37.470: E/UCE(13354): at android.view.Choreographer.doFrame(Choreographer.java:525)
02-10 13:55:37.470: E/UCE(13354): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
02-10 13:55:37.470: E/UCE(13354): at android.os.Handler.handleCallback(Handler.java:615)
02-10 13:55:37.470: E/UCE(13354): at android.os.Handler.dispatchMessage(Handler.java:92)
02-10 13:55:37.470: E/UCE(13354): at android.os.Looper.loop(Looper.java:137)
02-10 13:55:37.470: E/UCE(13354): at android.app.ActivityThread.main(ActivityThread.java:4898)
02-10 13:55:37.470: E/UCE(13354): at java.lang.reflect.Method.invokeNative(Native Method)
02-10 13:55:37.470: E/UCE(13354): at java.lang.reflect.Method.invoke(Method.java:511)
02-10 13:55:37.470: E/UCE(13354): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
02-10 13:55:37.470: E/UCE(13354): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
02-10 13:55:37.470: E/UCE(13354): at dalvik.system.NativeStart.main(Native Method)
02-10 13:55:37.555: E/AndroidRuntime(13354): FATAL EXCEPTION: main
02-10 13:55:37.555: E/AndroidRuntime(13354): java.lang.NullPointerException
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.ViewRootImpl.drawAccessibilityFocusedDrawableIfNeeded(ViewRootImpl.java:2431)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.ViewRootImpl.onHardwarePostDraw(ViewRootImpl.java:2059)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1182)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.ViewRootImpl.draw(ViewRootImpl.java:2275)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2147)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1958)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1112)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4518)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.Choreographer.doCallbacks(Choreographer.java:555)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.Choreographer.doFrame(Choreographer.java:525)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.os.Handler.handleCallback(Handler.java:615)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.os.Handler.dispatchMessage(Handler.java:92)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.os.Looper.loop(Looper.java:137)
02-10 13:55:37.555: E/AndroidRuntime(13354): at android.app.ActivityThread.main(ActivityThread.java:4898)
02-10 13:55:37.555: E/AndroidRuntime(13354): at java.lang.reflect.Method.invokeNative(Native Method)
02-10 13:55:37.555: E/AndroidRuntime(13354): at java.lang.reflect.Method.invoke(Method.java:511)
02-10 13:55:37.555: E/AndroidRuntime(13354): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
02-10 13:55:37.555: E/AndroidRuntime(13354): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
02-10 13:55:37.555: E/AndroidRuntime(13354): at dalvik.system.NativeStart.main(Native Method)
任何提示可能导致 NullPointer 异常?忙主线程?不兼容的 UI 元素?(我正在使用支持包、FragmentLayouts 和 android.support.v4.view.ViewPager)
//只是在完全不同的环境中遇到了同样的问题。我想它必须与 ViewPager/PageAdapter