uni-app WXSDKInstance.getInstanceId() 空指针导致的闪退问题

uni-app WXSDKInstance.getInstanceId() 空指针导致的闪退问题

开发环境 版本号 项目创建方式
Windows 10.15.2 HBuilderX
Android 10
华为
小米9

操作步骤:

  • 属于偶现问题,没有固定复现路径

预期结果:

  • 不产生崩溃

实际结果:

  • 空指针,导致App 崩溃

bug描述:

bugly上抓到的日志:

Attempt to invoke virtual method 'java.lang.String com.taobao.weex.WXSDKInstance.getInstanceId()' on a null object reference
com.taobao.weex.ui.action.BasicGraphicAction.executeActionOnRender(BasicGraphicAction.java:55)
com.taobao.weex.ui.component.WXComponent.updateStyleByPesudo(WXComponent.java:2302)
com.taobao.weex.ui.component.WXComponent.setPseudoClassStatus(WXComponent.java:2297)
com.taobao.weex.ui.component.WXComponent.updateActivePseudo(WXComponent.java:2259)
com.taobao.weex.ui.component.pesudo.TouchActivePseudoListener.onTouch(TouchActivePseudoListener.java:41)  

更多关于uni-app WXSDKInstance.getInstanceId() 空指针导致的闪退问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

更多关于uni-app WXSDKInstance.getInstanceId() 空指针导致的闪退问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


weex 官网找到了这个issues

请问楼主解决了吗,遇到同样的问题,非常着急

这是一个典型的Weex SDK空指针异常问题,主要发生在组件触摸事件处理时。从日志看,当调用WXSDKInstance.getInstanceId()时,实例对象为null导致崩溃。

可能的原因:

  1. 组件已被销毁但触摸事件仍在处理
  2. Weex实例被提前释放
  3. 异步操作导致状态不一致

快速解决方案:

  1. 在调用getInstanceId()前增加空判断:
if(instance != null) {
    String instanceId = instance.getInstanceId();
}
回到顶部