6.6.1版本使用生成代码功能时,autojs会闪退
Attempt to invoke virtual method 'android.view.accessibility.AccessibilityNodeInfo android.view.accessibility.AccessibilityNodeInfo.getParent()' on a null object reference java.lang.Exception: Attempt to invoke virtual method 'android.view.accessibility.AccessibilityNodeInfo android.view.accessibility.AccessibilityNodeInfo.getParent()' on a null object reference
经过多次测试, 我没能复现上述异常. 到时候我从源码那里看一下能不能发现问题. 另外如果有更多相关信息, 如高概率触发场景等, 也欢迎继续补充.
Sent from my XQ-DQ72 using FastHub
遇到同样的错误,系统为:XiaomiHyperOS(1.0.2.0.TKVCNXM)。生成后报上面的错,闪退,然后打开autojs,每次要开无障碍,应该是给系统杀了。自启动和省电策略都设置了,后来发现没锁,打开就不报错了。
我又试了一下,即使上面的都设置了,但是在某种APP某种布局下生成还是会闪退,不至少为啥
经过多次测试, 我没能复现上述异常. 到时候我从源码那里看一下能不能发现问题. 另外如果有更多相关信息, 如高概率触发场景等, 也欢迎继续补充.
是24年12月9日的提交引入的bug。重写了org.autojs.autojs.core.automator.UiObject的equals方法:
由于return语句的一系列逻辑都是从AccessibilityNodeInfo mInfo属性获取,如果mInfo为null,就会引发空指针异常。
需要生成代码的控件如果作为父组件的children时,就100%引发该bug。
由于本人android开发水平💩,不是很懂控件的布局。就自己修改了一下equals方法,重新出包测试可以避免该bug。
override fun equals(other: Any?): Boolean {
if (this === other) return true
if (other !is UiObject) return false
if (super.unwrap() == other.unwrap() && super.unwrap() == null) return true
return super.unwrap() == other.unwrap() &&
packageName() == other.packageName() &&
parent == other.parent &&
// ...
}
截图为AutoJs6主界面会出问题的控件点击效果,供作者参考。