android运行xwalkview闪退,解决Android中集成XWalkView的奇怪闪退

先看一眼关键的闪退信息:

Caused by: java.lang.RuntimeException: java.lang.NullPointerException: Attempt to invoke virtual method 'org.chromium.base.ObserverList org.chromium.base.ApplicationStatus$ActivityInfo.getListeners()' on a null object reference

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'org.chromium.base.ObserverList org.chromium.base.ApplicationStatus$ActivityInfo.getListeners()' on a null object reference

我是怎么遇到的:

两个Activity,结构如下:

FirstActivity -> Fragment -> XWalkView (记为A)

SecondActivity -> XWalkView (记为B)

先打开A,再打开B,没有问题;先打开B,再打开A,必然闪退

XWalkPreferences.setValue(XWalkPreferences.ANIMATABLE_XWALK_VIEW, true)

一开始以为是嵌入到Fragment里的问题,有人说可以这么干,结果是无效的

然后以为是id重复可能导致问题,修改为不同的id,问题依旧

接着以为是inflater的问题,改用代码创建,依然无效

最终正解:

MainActivity 里面加一行 mXWalkView = XWalkView(this)

为什么?

其实我也不知道,感觉上是XWalkView内部注册了Listener而没有注销之类的问题

之后整理一个Demo提交到XWalkView的issue里吧

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Visual Studio 2017时,控制台程序闪退可能是由多种原因引起的。以下是一些可能的原因和解决方法: 1. 代码错误:检查你的代码是否存在语法错误、逻辑错误或者内存访问错误。这些错误可能导致程序崩溃并闪退。仔细检查代码并修复错误。 2. 编译器问题:确保你使用的是最新版本的Visual Studio 2017,并且已经安装了所有的更新和补丁。有时,编译器本身可能存在问题,更新版本可能会修复这些问题。 3. 内存问题:如果你的程序使用了大量的内存,可能会导致闪退。确保你正确地分配和释放内存,并避免内存泄漏。 4. 第三方库冲突:如果你的程序使用了第三方库,可能存在与Visual Studio 2017不兼容的情况。尝试更新或替换第三方库,并确保与Visual Studio 2017兼容。 5. 硬件问题:有时,闪退可能是由于硬件问题引起的。检查你的计算机是否存在硬件故障或不稳定的情况,例如内存问题或过热问题。 如果以上方法都无法解决问题,建议尝试以下步骤: 1. 重新安装Visual Studio 2017:卸载并重新安装Visual Studio 2017,确保安装过程没有出现错误。 2. 创建新的项目:尝试创建一个新的控制台项目,并编写简单的代码进行测试。如果新项目可以正常运行,说明问题可能出现在你之前的项目。 3. 联系技术支持:如果以上方法都无法解决问题,建议联系Visual Studio 2017的技术支持团队,向他们报告问题并寻求帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值