stripe-react-native: Android: 3DS2 crashes
Describe the bug When performing 3DS2 verification, app crashes on android.
To Reproduce
- create new Expo app,
- install SDK,
- use payment sheet,
- 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
Seems like the issue is fixed in the latest version.