“java.lang.IllegalStateException:无法在密封实例上执行此操作。” 致命异常:主要

Bip*_*ari 6 java android google-play

我在 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)
Run Code Online (Sandbox Code Playgroud)

Noa*_*ead 0

如果没有看到更多代码,我建议您查看以下链接来尝试确定确切的原因。

/sf/answers/4057481011/

更新 AccessibilityNodeInfo 的值时,我们发现调用以.getClassName()查看该值是否为 NULL 可以帮助防止此错误。

/sf/answers/2298097441/

与之前类似,如果您要更改 an 的文本,accessibilityNodeInfo您可以通过调用 来检查它是否已密封isSealed()。在 AccessibilityNodeInfo 对象上