StackOverflowError in Jetpack Compose for Accessibility crash for Android Oreo

388 Views Asked by At

We are seeing Android Oreo StackOverflowError crashes in crashlytics but just for Android 8 (Oreo) devices. It's for Accessibility in Jetpack Compose. I can't make sense of this. I don't see any obvious recursion problem following the stacktrace.

Stacktrace

Fatal Exception: java.lang.StackOverflowError: stack size 8MB
       at androidx.core.os.BuildCompat.isAtLeastR(BuildCompat.java:160)
       at androidx.core.view.accessibility.AccessibilityNodeInfoCompat.setStateDescription(AccessibilityNodeInfoCompat.java:3007)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.populateAccessibilityNodeInfoProperties(AndroidComposeViewAccessibilityDelegateCompat.java:466)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.createNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.java:380)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.access$createNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.java:117)
       at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat$MyNodeProvider.createAccessibilityNodeInfo(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2443)
       at android.view.View.populateVirtualStructure(View.java:8083)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.populateVirtualStructure(View.java:8086)
       at android.view.View.onProvideVirtualStructure(View.java:7647)
       at android.view.View.dispatchProvideStructureForAssistOrAutofill(View.java:8151)
       at android.view.View.dispatchProvideStructure(View.java:8098)
       at android.view.ViewGroup.dispatchProvideStructure(ViewGroup.java:3404)
       at android.view.ViewGroup.dispatchProvideStructure(ViewGroup.java:3475)
       at android.view.ViewGroup.dispatchProvideStructure(ViewGroup.java:3475)
       at android.view.ViewGroup.dispatchProvideStructure(ViewGroup.java:3475)
       at android.view.ViewGroup.dispatchProvideStructure(ViewGroup.java:3475)
       at android.view.ViewGroup.dispatchProvideStructure(ViewGroup.java:3475)
       at android.view.ViewGroup.dispatchProvideStructure(ViewGroup.java:3475)
       at android.app.assist.AssistStructure$WindowNode.<init>(AssistStructure.java:512)
       at android.app.assist.AssistStructure.<init>(AssistStructure.java:1912)
       at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3039)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1829)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:176)
       at android.app.ActivityThread.main(ActivityThread.java:6651)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:824)

I didn't manage to replicate it. May that be related to some heavy parcels being retained on the stack. But then why does it throw on isAtLeastR method? And only on Oreos?

0

There are 0 best solutions below