内容简介:在使用 AccessibilityService 遍历包含 WebView 的 AccessibilityNodeInfo 时会在某些情况下必现最近使用 Android 的 AccessibilityService 做一些自动化操作时发现,在部分机器上遍历包含 WebView 页面的 AccessibilityNodeInfo 时,某些页面必定会引起相关说明可以参考
在使用 AccessibilityService 遍历包含 WebView 的 AccessibilityNodeInfo 时会在某些情况下必现 StackOverflowError
的错误,导致应用崩溃。
0x00 异常
最近使用 Android 的 AccessibilityService 做一些自动化操作时发现,在部分机器上遍历包含 WebView 页面的 AccessibilityNodeInfo 时,某些页面必定会引起 StackOverflowError
错误,经过一番查证,定位到主要与系统所使用的 Android System WebView 版本有关,属于 WebView 的 Bug。
相关说明可以参考 Android: Infinite loop of FrameLayouts in accessibility tree 的讨论。
查看 Android System WebView 版本(以下2种方法任一均可):
-
应用程序
- 菜单:显示系统应用程序
- 点击列表中的:Android System WebView
- 详情页内包含版本
-
开发者选项
- 开启「开发者选项」
- 开发者选项 -> WebView 实现
0x01 解决
方法有2种:
StackOverflowError
当然,方法2更具有可控性和兼容性,某些情况下我们并不能左右用户手机上 Android System WebView 的版本。
0x02 总结
此类情况发生在特定的 Android System WebView 和 Android 版本上,建议使用了相关功能的应用加上 Bug 上报的功能。
如果有什么建议或者问题可以随时联系我,共同探讨学习:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 数组常见的遍历循环方法、数组的循环遍历的效率对比
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除
- Js遍历数组总结
- 遍历
- 遍历 DOM 注意点
- MySQL 实现树形的遍历
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。