Skip to content

flutter app on Android 4.4 devices calls on Android Accessibility APIs that are not available #10855

@slowtick

Description

@slowtick

Steps to Reproduce

Built a flutter app and tested it on Android device with OS version 4.4.x and Android API level 19.
Firebase crash reporter caught NoClassDefFoundError.

Logs

From Firebase crash report.

Exception java.lang.NoClassDefFoundError: android.view.accessibility.AccessibilityNodeInfo$AccessibilityAction io.flutter.view.AccessibilityBridge.createAccessibilityNodeInfo (AccessibilityBridge.java:136) android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfVirtualNode (AccessibilityInteractionController.java:917) android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode (AccessibilityInteractionController.java:838) android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode (AccessibilityInteractionController.java:834) android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchDescendantsOfRealNode (AccessibilityInteractionController.java:834) android.view.AccessibilityInteractionController$AccessibilityNodePrefetcher.prefetchAccessibilityNodeInfos (AccessibilityInteractionController.java:720) android.view.AccessibilityInteractionController.findAccessibilityNodeInfoByAccessibilityIdUiThread (AccessibilityInteractionController.java:147) android.view.AccessibilityInteractionController.access$300 (AccessibilityInteractionController.java:49) android.view.AccessibilityInteractionController$PrivateHandler.handleMessage (AccessibilityInteractionController.java:971) android.os.Handler.dispatchMessage (Handler.java:102) android.os.Looper.loop (Looper.java:157) android.app.ActivityThread.main (ActivityThread.java:5633) java.lang.reflect.Method.invokeNative (Method.java) java.lang.reflect.Method.invoke (Method.java:515) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:896) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:712) dalvik.system.NativeStart.main (NativeStart.java)

Flutter Doctor

Sorry, will add this later today

Troubleshooting

Below seems to be triggering the crash

  1. Android AccessibilityNodeInfo.AccessibilityAction fields were available from Android API 21 onwards

  2. Flutter Engine calls on the AccessibilityNodeInfo Android API but misses error handling for Android API levels below 21.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)c: crashStack traces logged to the consoleplatform-androidAndroid applications specifically

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions