关于 int android.view.View.mPrivateFlags 报错的问题

因为是维护之前的代码,然后友盟异常捕捉经常出现这个bug,也没提示具体的异常位置,就很尴尬。然后我就大量的查找资料。也不清楚是什么情况会出现的,没法重现就很尴尬。

java.lang.NullPointerException: Attempt to read from field 'int android.view.View.mPrivateFlags' on a null object reference 5 at android.view.ViewGroup.resetCancelNextUpFlag(ViewGroup.java:2933) 6 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2832) 7 at android.view.View.dispatchPointerEvent(View.java:15167) 8 at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6879) 9 at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6658) 10 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6095) 11 at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6152) 12 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6118) 13 at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6283) 14 at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6126) 15 at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6340) 16 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6099) 17 at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6152) 18 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6118)at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6126) 20 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6099) 21 at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9235) 22 at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9175) 23 at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9132) 24 at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9377) 25 at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:279) 26 at android.os.MessageQueue.nativePollOnce(Native Method) 27 at android.os.MessageQueue.next(MessageQueue.java:337) 28 at android.os.Looper.loopOnce(Looper.java:168) 29 at android.os.Looper.loop(Looper.java:299) 30 at android.app.ActivityThread.main(ActivityThread.java:8256) 31 at java.lang.reflect.Method.invoke(Native Method) 32 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:576) 33 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1073) 34Back traces ends.

然后我就去大量查找资料,看看有没有跟我一样的哥们遇到过。

结果就找到了关于分析这个问题的相关解答,如下:

1.离开页面时dialog未dismiss,当再次回到该页面时会出现这个问题;

2.异步回调中操作了UI但页面已经结束。

最后就是根据自己项目做的排除处理了。

说一下我项目的bug怎么解决的吧。它依赖了 https://github.com/razerdp/BasePopup  的BasePopup,然后每个人的写法可能会不一样。我就每个Popup都检查一遍,发现唯独有个类没写下面这个方法。

setBackPressEnable(false);

 后面加上去。困扰了好几个礼拜的bug解决了。

下面是我查了好多资料,比较有用的。分享出来一下。如果有什么意见或者建议麻烦提出来,也希望有遇到问题的朋友,少走点弯路。

Attempt to read from field 'int android.view.View.mPrivateFlags' on a null objec-CSDN论坛

Attempt to read from field 'int android.view.View.mPrivateFlags' - 简书

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值