payfort / flutter-amazonpaymentservices

Flutter package for Amazon Payment Services native mobile SDKs
MIT License
2 stars 3 forks source link

[URGENT] Payfort UI causes app crash when canceling card purchase transaction #23

Open mohanedy opened 8 months ago

mohanedy commented 8 months ago

When I initiate a card purchase transaction, the Payfort UI is displayed. However, if I try to go back and cancel the transaction, the app crashes with a java.lang.RuntimeException and a java.lang.NullPointerException.

Steps to reproduce

  1. Start a card purchase transaction
  2. Tap the back button to cancel the transaction
  3. Observe the app crash

Expected behavior

The app should not crash and the transaction should be canceled.

Actual behavior

The app crashes and shows the following error log:

E/AndroidRuntime( 6188): FATAL EXCEPTION: main
E/AndroidRuntime( 6188): Process: com.walaplus.walaplusone.qa, PID: 6188
E/AndroidRuntime( 6188): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1166, result=-1, data=Intent { cmp=com.walaplus.walaplusone.qa/com.payfort.fortpaymentsdk.presentation.init.InitSecureConnectionActivity (has extras) }} to activity {com.walaplus.walaplusone.qa/com.walaplus.walaplusone.MainActivity}: java.lang.NullPointerException
E/AndroidRuntime( 6188):    at android.app.ActivityThread.deliverResults(ActivityThread.java:5527)
E/AndroidRuntime( 6188):    at android.app.ActivityThread.handleSendResult(ActivityThread.java:5566)
E/AndroidRuntime( 6188):    at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:67)
E/AndroidRuntime( 6188):    at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
E/AndroidRuntime( 6188):    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:139)
E/AndroidRuntime( 6188):    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:96)
E/AndroidRuntime( 6188):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2443)
E/AndroidRuntime( 6188):    at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime( 6188):    at android.os.Looper.loopOnce(Looper.java:205)
E/AndroidRuntime( 6188):    at android.os.Looper.loop(Looper.java:294)
E/AndroidRuntime( 6188):    at android.app.ActivityThread.main(ActivityThread.java:8177)
E/AndroidRuntime( 6188):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime( 6188):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
E/AndroidRuntime( 6188):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
E/AndroidRuntime( 6188): Caused by: java.lang.NullPointerException
E/AndroidRuntime( 6188):    at com.payfort.fortpaymentsdk.FortSdk.onActivityResult(FortSdk.kt:183)
E/AndroidRuntime( 6188):    at com.payfort.fortpaymentsdk.FortSdk$registerCallback$2.onActivityResult(FortSdk.kt:134)
E/AndroidRuntime( 6188):    at com.payfort.fortpaymentsdk.callbacks.FortCallback.onActivityResult(FortCallback.kt:23)
E/AndroidRuntime( 6188):    at com.amazon.flutter_amazonpaymentservices.FlutterAmazonpaymentservicesPlugin.lambda$onAttachedToActivity$1(FlutterAmazonpaymentservicesPlugin.java:110)
E/AndroidRuntime( 6188):    at com.amazon.flutter_amazonpaymentservices.FlutterAmazonpaymentservicesPlugin$$ExternalSyntheticLambda0.onActivityResult(Unknown Source:0)
E/AndroidRuntime( 6188):    at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onActivityResult(FlutterEngineConnectionRegistry.java:813)
E/AndroidRuntime( 6188):    at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onActivityResult(FlutterEngineConnectionRegistry.java:432)
E/AndroidRuntime( 6188):    at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onActivityResult(FlutterActivityAndFragmentDelegate.java:853)
E/AndroidRuntime( 6188):    at io.flutter.embedding.android.FlutterFragment.onActivityResult(FlutterFragment.java:1251)
E/AndroidRuntime( 6188):    at io.flutter.embedding.android.FlutterFragmentActivity.onActivityResult(FlutterFragmentActivity.java:652)
E/AndroidRuntime( 6188):    at android.app.Activity.dispatchActivityResult(Activity.java:8943)
E/AndroidRuntime( 6188):    at android.app.ActivityThread.deliverResults(ActivityThread.java:5520)
E/AndroidRuntime( 6188):    ... 13 more

Environment

Device: Samsung S8+ / Android 13 flutter version: 3.16.7 flutter_amazonpaymentservices: 0.0.7 compile and target SDK version: 34

jawaid-Ahmed commented 8 months ago

Still app crashes I have tried flutter_amazonpaymentservices: 0.0.6 flutter_amazonpaymentservices: 0.0.7 flutter version: 3.13.4 compile and target SDK version: 34

Console Log: D/OpenGLRenderer( 9506): endAllActiveAnimators on 0xb40000798aa75c40 (RippleDrawable) with handle 0xb40000789aa7aca0 D/AndroidRuntime( 9506): Shutting down VM E/AndroidRuntime( 9506): FATAL EXCEPTION: main E/AndroidRuntime( 9506): Process: com.washers.laundryuser, PID: 9506 E/AndroidRuntime( 9506): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1166, result=-1, data=Intent { cmp=com.washers.laundryuser/com.payfort.fortpaymentsdk.presentation.init.InitSecureConnectionActivity (has extras) }} to activity {com.washers.laundryuser/com.washers.laundryuser.MainActivity}: java.lang.NullPointerException E/AndroidRuntime( 9506): at android.app.ActivityThread.deliverResults(ActivityThread.java:5301) E/AndroidRuntime( 9506): at android.app.ActivityThread.handleSendResult(ActivityThread.java:5340) E/AndroidRuntime( 9506): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:54) E/AndroidRuntime( 9506): at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) E/AndroidRuntime( 9506): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) E/AndroidRuntime( 9506): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) E/AndroidRuntime( 9506): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2210) E/AndroidRuntime( 9506): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime( 9506): at android.os.Looper.loopOnce(Looper.java:201) E/AndroidRuntime( 9506): at android.os.Looper.loop(Looper.java:288) E/AndroidRuntime( 9506): at android.app.ActivityThread.main(ActivityThread.java:7839) E/AndroidRuntime( 9506): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 9506): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) E/AndroidRuntime( 9506): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) E/AndroidRuntime( 9506): Caused by: java.lang.NullPointerException E/AndroidRuntime( 9506): at com.payfort.fortpaymentsdk.FortSdk.onActivityResult(FortSdk.kt:183) E/AndroidRuntime( 9506): at com.payfort.fortpaymentsdk.FortSdk$registerCallback$2.onActivityResult(FortSdk.kt:134) E/AndroidRuntime( 9506): at com.payfort.fortpaymentsdk.callbacks.FortCallback.onActivityResult(FortCallback.kt:23) E/AndroidRuntime( 9506): at com.amazon.flutter_amazonpaymentservices.FlutterAmazonpaymentservicesPlugin.lambda$onAttachedToActivity$1(FlutterAmazonpaymentservicesPlugin.java:110) E/AndroidRuntime( 9506): at com.amazon.flutter_amazonpaymentservices.FlutterAmazonpaymentservicesPlugin$$ExternalSyntheticLambda2.onActivityResult(Unknown Source:0) E/AndroidRuntime( 9506): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onActivityResult(FlutterEngineConnectionRegistry.java:813) E/AndroidRuntime( 9506): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onActivityResult(FlutterEngineConnectionRegistry.java:432) E/AndroidRuntime( 9506): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onActivityResult(FlutterActivityAndFragmentDelegate.java:868) E/AndroidRuntime( 9506): at io.flutter.embedding.android.FlutterActivity.onActivityResult(FlutterActivity.java:928) E/AndroidRuntime( 9506): at android.app.Activity.dispatchActivityResult(Activity.java:8382) E/AndroidRuntime( 9506): at android.app.ActivityThread.deliverResults(ActivityThread.java:5294) E/AndroidRuntime( 9506): ... 13 more I/Process ( 9506): Sending signal. PID: 9506 SIG: 9

mohanedy commented 8 months ago

@jawaid-Ahmed try to change the compile SDK to v33 till they fix this issue in the native Android plugin. This worked for me.

omeramasib commented 8 months ago

can you please give me you WhatsApp number ?