stripe-android icon indicating copy to clipboard operation
stripe-android copied to clipboard

[BUG] SDK crash due to accessibility options (java.lang.NoSuchMethodError: No static method performImeAction)

Open scruffyfox opened this issue 1 year ago • 2 comments

Summary

Related to https://github.com/stripe/stripe-android/issues/8599

SDK crash occurs when accessibility options are enabled.

Android version

Android API 35

Dependency Versions

androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.5
com.stripe:stripe-android:20.48.6

kotlin: 1.9.24 Gradle: 8.4.2

Crash stack trace

FATAL EXCEPTION: main
 Process: com.passenger.engineering.debug, PID: 2865
 java.lang.NoSuchMethodError: No static method performImeAction$default(Landroidx/compose/ui/semantics/SemanticsPropertyReceiver;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)V in class Landroidx/compose/ui/semantics/SemanticsPropertiesKt; or its super classes (declaration of 'androidx.compose.ui.semantics.SemanticsPropertiesKt' appears in /data/app/~~03iCRp6iktPxzncJ0hrLzw==/com.passenger.engineering.debug-UHIvL9R0D90sbbZRZ6P_4A==/base.apk)
    at androidx.compose.foundation.text.CoreTextFieldKt$CoreTextField$semanticsModifier$1.invoke(CoreTextField.kt:532)
    at androidx.compose.foundation.text.CoreTextFieldKt$CoreTextField$semanticsModifier$1.invoke(CoreTextField.kt:433)
    at androidx.compose.ui.semantics.CoreSemanticsModifierNode.applySemantics(SemanticsModifier.kt:73)
    at androidx.compose.ui.node.LayoutNode$collapsedSemantics$1.invoke(LayoutNode.kt:430)
    at androidx.compose.ui.node.LayoutNode$collapsedSemantics$1.invoke(LayoutNode.kt:421)
    at androidx.compose.runtime.snapshots.Snapshot$Companion.observe(Snapshot.kt:2303)
    at androidx.compose.runtime.snapshots.SnapshotStateObserver$ObservedScopeMap.observe(SnapshotStateObserver.kt:500)
    at androidx.compose.runtime.snapshots.SnapshotStateObserver.observeReads(SnapshotStateObserver.kt:256)
    at androidx.compose.ui.node.OwnerSnapshotObserver.observeReads$ui_release(OwnerSnapshotObserver.kt:133)
    at androidx.compose.ui.node.OwnerSnapshotObserver.observeSemanticsReads$ui_release(OwnerSnapshotObserver.kt:121)
    at androidx.compose.ui.node.LayoutNode.getCollapsedSemantics$ui_release(LayoutNode.kt:421)
    at androidx.compose.ui.semantics.SemanticsNodeKt.SemanticsNode(SemanticsNode.kt:48)
    at androidx.compose.ui.semantics.SemanticsNode.fillOneLayerOfSemanticsWrappers(SemanticsNode.kt:268)
    at androidx.compose.ui.semantics.SemanticsNode.fillOneLayerOfSemanticsWrappers(SemanticsNode.kt:270)
    at androidx.compose.ui.semantics.SemanticsNode.unmergedChildren$ui_release(SemanticsNode.kt:248)
    at androidx.compose.ui.semantics.SemanticsNode.getChildren(SemanticsNode.kt:327)
    at androidx.compose.ui.semantics.SemanticsNode.getReplacedChildren$ui_release(SemanticsNode.kt:298)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3665)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3667)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3667)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3667)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3667)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap$findAllSemanticNodesRecursive(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3667)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.getAllUncoveredSemanticsNodesToMap(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3700)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat_androidKt.access$getAllUncoveredSemanticsNodesToMap(AndroidComposeViewAccessibilityDelegateCompat.android.kt:1)
11:08:13.589 AndroidRuntime                           
E  	at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.getCurrentSemanticsNodes(AndroidComposeViewAccessibilityDelegateCompat.android.kt:342)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.sendAccessibilitySemanticsStructureChangeEvents(AndroidComposeViewAccessibilityDelegateCompat.android.kt:3085)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.checkForSemanticsChanges(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2358)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.semanticsChangeChecker$lambda$46(AndroidComposeViewAccessibilityDelegateCompat.android.kt:2189)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat.$r8$lambda$CZAjA4a8ePLF9FU4Ia6Vf_-igrw(Unknown Source:0)
    at androidx.compose.ui.platform.AndroidComposeViewAccessibilityDelegateCompat$$ExternalSyntheticLambda2.run(D8$$SyntheticClass:0)
    at android.os.Handler.handleCallback(Handler.java:959)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loopOnce(Looper.java:232)
    at android.os.Looper.loop(Looper.java:317)
    at android.app.ActivityThread.main(ActivityThread.java:8699)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)

scruffyfox avatar Sep 11 '24 10:09 scruffyfox

Im having the same crash. There have been some months since the original report (referenced in OP post). Is there any plan on prioritizing this?

cutiko avatar Sep 12 '24 12:09 cutiko

Hey @scruffyfox, thanks for re-raising this issue. We've created a ticket to investigate a fix.

tjclawson-stripe avatar Oct 07 '24 15:10 tjclawson-stripe

Hi @scruffyfox and @cutiko we released a new version with a potential fix, and upgraded compose versions yesterday. Could you please give it a try?

jaynewstrom-stripe avatar Oct 22 '24 14:10 jaynewstrom-stripe

Please reopen if you can reproduce this.

jaynewstrom-stripe avatar Nov 08 '24 19:11 jaynewstrom-stripe

I also encountered this crash on androidx. compose. ui: ui android: 1.6.0, which was resolved by updating to androidx. compose. ui: ui android: 1.7.2

HelloWorldFeng avatar Dec 02 '24 09:12 HelloWorldFeng

Also encountered. Found that not all devices crashed. One of real device (Redmi Tablet) crash but simulator is fine

kadenchoi-halo avatar Feb 17 '25 01:02 kadenchoi-halo