"java.lang.IllegalStateException: Cannot perform this action on a sealed instance." 致命例外:主要



我在playstore控制台的预发布报告上得到此错误。我无法在我尝试的任何真实设备上产生这种崩溃。从发布前的报告来看,这款设备是三星s9 (Android 8.0)。

这是堆栈跟踪:

FATAL EXCEPTION: main
java.lang.IllegalStateException: Cannot perform this action on a sealed instance.
at android.view.accessibility.AccessibilityNodeInfo.enforceNotSealed(AccessibilityNodeInfo.java:2992)
at android.view.accessibility.AccessibilityNodeInfo.setSource(AccessibilityNodeInfo.java:818)
at android.view.accessibility.AccessibilityNodeInfo.setSource(AccessibilityNodeInfo.java:795)
at android.view.accessibility.AccessibilityNodeInfo.obtain(AccessibilityNodeInfo.java:3008)
at android.view.View.createAccessibilityNodeInfoInternal(View.java:7897)
at android.view.View.createAccessibilityNodeInfo(View.java:7883)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode(AccessibilityInteractionController.java:1051)
at android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos(AccessibilityInteractionController.java:876)
at android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread(AccessibilityInteractionController.java:199)
at android.view.AccessibilityInteractionController.-wrap1(Unknown Source:0)
at android.view.AccessibilityInteractionController$PrivateHandler.handleMessage(AccessibilityInteractionController.java:1225)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

在没有看到更多代码的情况下,我建议通过以下链接尝试确定确切的原因。

https://stackoverflow.com/a/57964014/5779200

当更新AccessibilityNodeInfo的值时,已经看到调用.getClassName()来查看值是否为NULL可以帮助防止此错误。

https://stackoverflow.com/a/32829963/5779200

与前面类似,如果您正在更改accessibilityNodeInfo的文本,您可以通过调用isSealed()来检查它是否被密封。可访问nodeinfo对象

相关内容

最新更新