gpt4 book ai didi

android - 从调用返回时 ViewRootImpl 中的 NullPointerException(仅适用于 Samsung Touch)

转载 作者:行者123 更新时间:2023-11-30 03:47:13 28 4
gpt4 key购买 nike

我有一个非常奇怪的 NullPointerException(仅发生在 Android 4.1 上,既不在 ICS 上也不在 Jelly Bean 4.2 上)编辑:仅在 Samsung Touch 设备上。

当按下一个按钮时,我会从我的一个 Activity 中启动一个 ACTION_CALL Activity,如下所示:

final Uri dialInFormat = Uri.parse("tel:" + number + ",," + code + "#");
log.info("Starting call: " + dialInFormat);
Intent intent = new Intent(Intent.ACTION_CALL, dialInFormat);
startActivity(intent);

电话 Activity 显示并调用号码。但是一旦我完成通话,回到我的应用程序并触摸屏幕,就会发生以下错误并且应用程序被终止:

(有时错误发生的更早,电话还在拨号的时候)

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 做一些事情

最佳答案

我找到了解决方案:

我们使用的是 Quick Actions Pop对于触发电话调用的菜单。在开始通话之前,我在 PopupWindow 上调用了 dismiss。

public void dismiss() {
AnimationSet shrinkAnimation = createAnimation(false);
shrinkAnimation.setAnimationListener(mShrinkAnimationListener);

mRoot.startAnimation(shrinkAnimation);
}

如您所见,触发了一个动画以关闭 Quick Action Pop。我猜 Samsung Touch 在动画手完成之前破坏了后台的 Activity。移除动画并调用 super.dismiss() 解决了问题。

但再次重申:此错误仅发生在 Samsung Touch 设备上。

关于android - 从调用返回时 ViewRootImpl 中的 NullPointerException(仅适用于 Samsung Touch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14798067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com