gpt4 book ai didi

android - java.lang.IllegalStateException : Cannot perform this action on a not sealed instance 错误

转载 作者:太空狗 更新时间:2023-10-29 14:36:20 55 4
gpt4 key购买 nike

我正在使用辅助功能服务在屏幕上找到一个按钮并单击它,但由于某种原因我收到以下错误:

java.lang.IllegalStateException: Cannot perform this action on a not sealed instance.
at android.view.accessibility.AccessibilityNodeInfo.enforceSealed(AccessibilityNodeInfo.java:3046)
at android.view.accessibility.AccessibilityNodeInfo.findAccessibilityNodeInfosByText(AccessibilityNodeInfo.java:1529)
at com.myapp.adapters.Adapter_Click$11.run(Adapter_Click.java:1874)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Method.java:-2)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

它所指的行是:

List<AccessibilityNodeInfo> list = source.findAccessibilityNodeInfosByText("Accept".toLowerCase());

然后我用它来点击按钮:

if (view.performAction(AccessibilityNodeInfo.ACTION_CLICK)) 
{
Log.e(TAG, "Button clicked");
}

在我最近更新到 AndroidX 之前,去年我没有发现任何问题。有没有办法在尝试单击它之前检查它是否是密封实例?我什至尝试将其包装在 try/catch 中,但它仍然使我的应用程序崩溃。

最佳答案

(这有点痛苦,但如果一个节点被放弃,它的大部分功能都会严重崩溃——甚至 refresh()。这很奇怪,因为据我所知你可以只要您需要,就保留实例。)

您可以通过检查 getClassName() 是否返回 null 来轻松地检查一个是否仍然有效——如果返回 null,请像扔烫手山芋一样扔掉它!你不能再用它做任何事了——甚至不要 recycle() 它,因为你脚下已经有东西做了。

关于android - java.lang.IllegalStateException : Cannot perform this action on a not sealed instance 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54843587/

55 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com