AutoJs6 icon indicating copy to clipboard operation
AutoJs6 copied to clipboard

6.6.1版本使用生成代码功能时,autojs会闪退

Open whoisyoufather opened this issue 11 months ago • 3 comments

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

whoisyoufather avatar Jan 03 '25 06:01 whoisyoufather

经过多次测试, 我没能复现上述异常. 到时候我从源码那里看一下能不能发现问题. 另外如果有更多相关信息, 如高概率触发场景等, 也欢迎继续补充.

Sent from my XQ-DQ72 using FastHub

SuperMonster003 avatar Jan 06 '25 05:01 SuperMonster003

遇到同样的错误,系统为:XiaomiHyperOS(1.0.2.0.TKVCNXM)。生成后报上面的错,闪退,然后打开autojs,每次要开无障碍,应该是给系统杀了。自启动和省电策略都设置了,后来发现没锁,打开就不报错了。

Image

我又试了一下,即使上面的都设置了,但是在某种APP某种布局下生成还是会闪退,不至少为啥

luchanan avatar Jan 20 '25 09:01 luchanan

经过多次测试, 我没能复现上述异常. 到时候我从源码那里看一下能不能发现问题. 另外如果有更多相关信息, 如高概率触发场景等, 也欢迎继续补充.

Sent from my XQ-DQ72 using FastHub使用 FastHub 从我的 XQ-DQ72 发送

24年12月9日的提交引入的bug。重写了org.autojs.autojs.core.automator.UiObject的equals方法: Image

由于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主界面会出问题的控件点击效果,供作者参考。 Image

Hunter1023 avatar Mar 01 '25 14:03 Hunter1023