square / in-app-payments-react-native-plugin

Apache License 2.0
116 stars 49 forks source link

Crash android after save startCardEntryFlowWithBuyerVerification #205

Closed telenc closed 1 year ago

telenc commented 1 year ago

Hello @CharmisG ,

I have a crash after user click on button "save" from startCardEntryFlowWithBuyerVerification view Everything work well on iPhone

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.xxxx.xxx, PID: 30816
    java.lang.NoClassDefFoundError: Failed resolution of: Lorg/emvco/threeds/core/ui/UiCustomization;
        at com.nds.threeds.core.EMVUiCustomization.<init>(EMVUiCustomization.kt:49)
        at sqip.internal.verification.service.nudata.NuDataVerificationService.startThreeDSWidget(NuDataVerificationService.kt:97)
        at sqip.internal.verification.service.nudata.NuDataVerificationService.verify(NuDataVerificationService.kt:51)
        at sqip.internal.verification.BuyerVerificationController.startVerificationService(BuyerVerificationController.kt:295)
        at sqip.internal.verification.BuyerVerificationController.handleResponse(BuyerVerificationController.kt:320)
        at sqip.internal.verification.BuyerVerificationController.onCreateVerificationSuccess(BuyerVerificationController.kt:271)
        at sqip.internal.verification.BuyerVerificationController.access$onCreateVerificationSuccess(BuyerVerificationController.kt:50)
        at sqip.internal.verification.BuyerVerificationController$startCreateVerification$1.invoke(BuyerVerificationController.kt:244)
        at sqip.internal.verification.BuyerVerificationController$startCreateVerification$1.invoke(BuyerVerificationController.kt:244)
        at sqip.internal.verification.BuyerVerificationRequestHandler$Real.sendSuccess(BuyerVerificationRequestHandler.kt:192)
        at sqip.internal.verification.BuyerVerificationRequestHandler$Real.onResponse(BuyerVerificationRequestHandler.kt:139)
        at sqip.internal.verification.BuyerVerificationRequestHandler$Real$createVerification$1.onResponse(BuyerVerificationRequestHandler.kt:82)
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.lambda$onResponse$0$retrofit2-DefaultCallAdapterFactory$ExecutorCallbackCall$1(DefaultCallAdapterFactory.java:89)
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$$ExternalSyntheticLambda1.run(Unknown Source:6)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:223)
        at android.app.ActivityThread.main(ActivityThread.java:7656)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "org.emvco.threeds.core.ui.UiCustomization" on path: DexPathList[[zip file "/data/app/~~4jiQdeUb5vmzdDVjI53_bw==/com.xxxx.xxxx-lTYlN2H6FVsdqDum8TJ7Jg==/base.apk"],nativeLibraryDirectories=[/data/app/~~4jiQdeUb5vmzdDVjI53_bw==/com.xxxx.xxxx-lTYlN2H6FVsdqDum8TJ7Jg==/lib/arm64, /data/app/~~4jiQdeUb5vmzdDVjI53_bw==/com.xxxx.xxxx-lTYlN2H6FVsdqDum8TJ7Jg==/base.apk!/lib/arm64-v8a, /system/lib64, /system_ext/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at com.nds.threeds.core.EMVUiCustomization.<init>(EMVUiCustomization.kt:49) 
        at sqip.internal.verification.service.nudata.NuDataVerificationService.startThreeDSWidget(NuDataVerificationService.kt:97) 
        at sqip.internal.verification.service.nudata.NuDataVerificationService.verify(NuDataVerificationService.kt:51) 
        at sqip.internal.verification.BuyerVerificationController.startVerificationService(BuyerVerificationController.kt:295) 
        at sqip.internal.verification.BuyerVerificationController.handleResponse(BuyerVerificationController.kt:320) 
        at sqip.internal.verification.BuyerVerificationController.onCreateVerificationSuccess(BuyerVerificationController.kt:271) 
        at sqip.internal.verification.BuyerVerificationController.access$onCreateVerificationSuccess(BuyerVerificationController.kt:50) 
        at sqip.internal.verification.BuyerVerificationController$startCreateVerification$1.invoke(BuyerVerificationController.kt:244) 
        at sqip.internal.verification.BuyerVerificationController$startCreateVerification$1.invoke(BuyerVerificationController.kt:244) 
        at sqip.internal.verification.BuyerVerificationRequestHandler$Real.sendSuccess(BuyerVerificationRequestHandler.kt:192) 
        at sqip.internal.verification.BuyerVerificationRequestHandler$Real.onResponse(BuyerVerificationRequestHandler.kt:139) 
        at sqip.internal.verification.BuyerVerificationRequestHandler$Real$createVerification$1.onResponse(BuyerVerificationRequestHandler.kt:82) 
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1.lambda$onResponse$0$retrofit2-DefaultCallAdapterFactory$ExecutorCallbackCall$1(DefaultCallAdapterFactory.java:89) 
        at retrofit2.DefaultCallAdapterFactory$ExecutorCallbackCall$1$$ExternalSyntheticLambda1.run(Unknown Source:6) 
        at android.os.Handler.handleCallback(Handler.java:938) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:223) 
        at android.app.ActivityThread.main(ActivityThread.java:7656) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 

On my build.gradle file I have

def MIN_IAP_SDK_VERSION = '1.5.6'

rootProject.allprojects {
    repositories {
        google()
        maven {
            url 'https://sdk.squareup.com/public/android'
        }
    }
}

dependencies {
    def sqipVersion = rootProject.hasProperty('sqipVersion') ? rootProject.sqipVersion : MIN_IAP_SDK_VERSION
    implementation 'com.facebook.react:react-native:+'
    implementation "com.squareup.sdk.in-app-payments:card-entry:$sqipVersion"
    implementation "com.squareup.sdk.in-app-payments:google-pay:$sqipVersion"
    //implementation "com.squareup.sdk.in-app-payments:buyer-verification:$sqipVersion"
    api ("com.squareup.sdk.in-app-payments:buyer-verification:$sqipVersion") { // <--- HERE 
        exclude group: 'com.nds.threeds', module: 'threedssdk-release'
    }
    implementation 'com.google.android.gms:play-services-wallet:16.0.1'
}

And my package.json

    "react-native-square-in-app-payments": "^1.7.2",
telenc commented 1 year ago

help @CharmisG :)

CharmisG commented 1 year ago

@telenc Sorry for the delay

We will soon release IAP version 1.6.1 and in that version we have covered buyverification issue so we will let you know after releasing IAP 1.6.1.

Thank you !

telenc commented 1 year ago

@CharmisG Ok thank's !

Have you got a date for this release ? to know if I can wait or I have to find another solution?

Thanks

fka3 commented 1 year ago

As of yesterday, we released SDK 1.6.2, actually. I think @CharmisG is updating the RN plugin to match.... please let us know if that doesn't fix this error for you!