stripe-react-native: Android: 3DS2 crashes

Describe the bug When performing 3DS2 verification, app crashes on android.

To Reproduce

  1. create new Expo app,
  2. install SDK,
  3. use payment sheet,
  4. use test card with 3DS2,

Expected behavior everything works

Screenshots

ERROR Your app just crashed. See the error below. java.lang.RuntimeException: Unable to start activity ComponentInfo{cz.tlappka.v4/com.stripe.android.view.PaymentAuthWebViewActivity}: android.view.InflateException: Binary XML file line #21 in cz.tlappka.v4:layout/payment_auth_web_view_activity: Binary XML file line #21 in cz.tlappka.v4:layout/payment_auth_web_view_activity: Error inflating class com.stripe.android.view.PaymentAuthWebView android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4169) android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4325) android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574) android.os.Handler.dispatchMessage(Handler.java:106) android.os.Looper.loopOnce(Looper.java:226) android.os.Looper.loop(Looper.java:313) android.app.ActivityThread.main(ActivityThread.java:8757) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067) Caused by android.view.InflateException: Binary XML file line #21 in cz.tlappka.v4:layout/payment_auth_web_view_activity: Binary XML file line #21 in cz.tlappka.v4:layout/payment_auth_web_view_activity: Error inflating class com.stripe.android.view.PaymentAuthWebView

Caused by android.view.InflateException: Binary XML file line #21 in cz.tlappka.v4:layout/payment_auth_web_view_activity: Error inflating class com.stripe.android.view.PaymentAuthWebView

Caused by java.lang.reflect.InvocationTargetException java.lang.reflect.Constructor.newInstance0(Native Method) java.lang.reflect.Constructor.newInstance(Constructor.java:343) android.view.LayoutInflater.createView(LayoutInflater.java:876) android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1028) android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:983) android.view.LayoutInflater.rInflate(LayoutInflater.java:1145) android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1106) android.view.LayoutInflater.rInflate(LayoutInflater.java:1148) android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1106) android.view.LayoutInflater.inflate(LayoutInflater.java:692) android.view.LayoutInflater.inflate(LayoutInflater.java:544) com.stripe.android.databinding.PaymentAuthWebViewActivityBinding.inflate(PaymentAuthWebViewActivityBinding.java:61) com.stripe.android.databinding.PaymentAuthWebViewActivityBinding.inflate(PaymentAuthWebViewActivityBinding.java:55) com.stripe.android.view.PaymentAuthWebViewActivity$viewBinding$2.invoke(PaymentAuthWebViewActivity.kt:28) com.stripe.android.view.PaymentAuthWebViewActivity$viewBinding$2.invoke(PaymentAuthWebViewActivity.kt:27) kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) com.stripe.android.view.PaymentAuthWebViewActivity.getViewBinding(PaymentAuthWebViewActivity.kt:27) com.stripe.android.view.PaymentAuthWebViewActivity.onCreate(PaymentAuthWebViewActivity.kt:58) android.app.Activity.performCreate(Activity.java:8591) android.app.Activity.performCreate(Activity.java:8570) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384) android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4150) android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4325) android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574) android.os.Handler.dispatchMessage(Handler.java:106) android.os.Looper.loopOnce(Looper.java:226) android.os.Looper.loop(Looper.java:313) android.app.ActivityThread.main(ActivityThread.java:8757) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067) Caused by java.lang.IllegalStateException: Calling View methods on another thread than the UI thread. com.android.webview.chromium.WebViewChromium.b(chromium-TrichromeWebViewGoogle.aab-stable-561513533:25) com.android.webview.chromium.WebViewChromium.init(chromium-TrichromeWebViewGoogle.aab-stable-561513533:97) android.webkit.WebView.<init>(WebView.java:448) android.webkit.WebView.<init>(WebView.java:368) android.webkit.WebView.<init>(WebView.java:350) com.stripe.android.view.PaymentAuthWebView.<init>(PaymentAuthWebView.kt:17) com.stripe.android.view.PaymentAuthWebView.<init>(PaymentAuthWebView.kt:13) com.stripe.android.view.PaymentAuthWebView.<init>(Unknown Source:11) java.lang.reflect.Constructor.newInstance0(Native Method) java.lang.reflect.Constructor.newInstance(Constructor.java:343) android.view.LayoutInflater.createView(LayoutInflater.java:876) android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1028) android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:983) android.view.LayoutInflater.rInflate(LayoutInflater.java:1145) android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1106) android.view.LayoutInflater.rInflate(LayoutInflater.java:1148) android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1106) android.view.LayoutInflater.inflate(LayoutInflater.java:692) android.view.LayoutInflater.inflate(LayoutInflater.java:544) com.stripe.android.databinding.PaymentAuthWebViewActivityBinding.inflate(PaymentAuthWebViewActivityBinding.java:61) com.stripe.android.databinding.PaymentAuthWebViewActivityBinding.inflate(PaymentAuthWebViewActivityBinding.java:55) com.stripe.android.view.PaymentAuthWebViewActivity$viewBinding$2.invoke(PaymentAuthWebViewActivity.kt:28) com.stripe.android.view.PaymentAuthWebViewActivity$viewBinding$2.invoke(PaymentAuthWebViewActivity.kt:27) kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74) com.stripe.android.view.PaymentAuthWebViewActivity.getViewBinding(PaymentAuthWebViewActivity.kt:27) com.stripe.android.view.PaymentAuthWebViewActivity.onCreate(PaymentAuthWebViewActivity.kt:58) android.app.Activity.performCreate(Activity.java:8591) android.app.Activity.performCreate(Activity.java:8570) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384) android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4150) android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4325) android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574) android.os.Handler.dispatchMessage(Handler.java:106) android.os.Looper.loopOnce(Looper.java:226) android.os.Looper.loop(Looper.java:313) android.app.ActivityThread.main(ActivityThread.java:8757) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

Smartphone (please complete the following information):

  • Device: Samsung A53
  • OS: Android
  • Version: 13

Additional context It seems like in android version this might have been fixed , but I am unable to use this version because Expo is locked to "@stripe/stripe-react-native": "0.23.3" which resolves to lower android sdk version I guess?

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Comments: 16

Most upvoted comments

Seems like the issue is fixed in the latest version.