ancon-labs / react-native-adyen-dropin

React Native bridge for Adyen drop-in
MIT License
6 stars 5 forks source link

Android App crash on "Card" option selection #2

Closed Napster2210 closed 3 years ago

Napster2210 commented 3 years ago

Hello @jesperjohansson

Thank you so much for the much awaited library. I am trying to use your library in one of my project. I have performed steps as you mentioned on README file. But when I initiate Adyen Payment on Android it shows small modal with option for "Card" payment. On tapping of that menu item, my app is crashing and it closes again and again.

Can you please help me with this?

jesperjohansson commented 3 years ago

@Napster2210 Hello, can you provide crash logs? See if you can find the exception using adb logcat or by running debugger in Android Studio. It could be the way the data from your API is formatted. You can set the debug prop as in the example to get more debug logs. https://github.com/ancon-labs/react-native-adyen-dropin/blob/master/example/src/App.tsx#L97

Napster2210 commented 3 years ago

Sure @jesperjohansson

2021-08-30 20:07:13.849 28645-28645/com.sample E/SensorManager: unregisterListenerImpl callingApp: com.sample,callingPid:28645,callingUid:10440
2021-08-30 20:07:13.860 28645-29776/com.sample D/ViewRootImpl[MainActivity]: windowFocusChanged hasFocus=false inTouchMode=true
2021-08-30 20:07:13.860 28645-28645/com.sample W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@bb6f4a4
2021-08-30 20:07:13.970 28645-28645/com.sample V/ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
2021-08-30 20:07:13.992 28645-28645/com.sample V/ViewRootImpl: The specified message queue synchronization  barrier token has not been posted or has already been removed
2021-08-30 20:07:14.001 28645-28645/com.sample W/m.savvybooking: Accessing hidden method Landroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl; (greylist, reflection, allowed)
2021-08-30 20:07:14.001 28645-28645/com.sample W/m.savvybooking: Accessing hidden field Landroid/view/View$AttachInfo;->mVisibleInsets:Landroid/graphics/Rect; (greylist, reflection, allowed)
2021-08-30 20:07:14.001 28645-28645/com.sample W/m.savvybooking: Accessing hidden field Landroid/view/ViewRootImpl;->mAttachInfo:Landroid/view/View$AttachInfo; (greylist, reflection, allowed)
2021-08-30 20:07:14.021 28645-30276/com.sample I/DpmTcmClient: RegisterTcmMonitor from: $Proxy0
2021-08-30 20:07:14.028 28645-29776/com.sample D/DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@7e62f85[DropInActivity]
2021-08-30 20:07:14.029 28645-29776/com.sample D/ViewRootImpl[DropInActivity]: windowFocusChanged hasFocus=true inTouchMode=true
2021-08-30 20:07:14.057 28645-28645/com.sample W/Choreographer: Already have a pending vsync event.  There should only be one at a time.
2021-08-30 20:07:18.379 28645-29811/com.sample D/OpenGLRenderer: endAllActiveAnimators on 0x7d91e64b00 (RippleDrawable) with handle 0x7d5b971a40
2021-08-30 20:07:18.391 28645-29776/com.sample D/DecorView: onWindowFocusChangedFromViewRoot hasFocus: true, DecorView@bd32b1d[DropInActivity]
2021-08-30 20:07:18.394 28645-29949/com.sample D/ViewRootImpl[DropInActivity]: windowFocusChanged hasFocus=false inTouchMode=true
2021-08-30 20:07:18.394 28645-29776/com.sample D/ViewRootImpl[DropInActivity]: windowFocusChanged hasFocus=true inTouchMode=true
2021-08-30 20:07:18.545 28645-28645/com.sample D/AndroidRuntime: Shutting down VM

    --------- beginning of crash
2021-08-30 20:07:18.548 28645-28645/com.sample E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.sample, PID: 28645
    android.view.InflateException: Binary XML file line #64 in com.sample:layout/fragment_card_component: Binary XML file line #64 in com.sample:layout/fragment_card_component: Error inflating class com.adyen.checkout.card.CardView
    Caused by: android.view.InflateException: Binary XML file line #64 in com.sample:layout/fragment_card_component: Error inflating class com.adyen.checkout.card.CardView
    Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:854)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
        at com.adyen.checkout.dropin.databinding.FragmentCardComponentBinding.inflate(FragmentCardComponentBinding.java:65)
        at com.adyen.checkout.dropin.ui.component.CardComponentDialogFragment.onCreateView(CardComponentDialogFragment.kt:43)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
        at androidx.fragment.app.DialogFragment.performCreateView(DialogFragment.java:489)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7697)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
     Caused by: android.view.InflateException: Binary XML file line #21 in com.sample:layout/card_view: Binary XML file line #21 in com.sample:layout/card_view: Error inflating class com.google.android.material.textfield.TextInputLayout
     Caused by: android.view.InflateException: Binary XML file line #21 in com.sample:layout/card_view: Error inflating class com.google.android.material.textfield.TextInputLayout
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:854)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:656)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
2021-08-30 20:07:18.549 28645-28645/com.sample E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
        at com.adyen.checkout.card.databinding.CardViewBinding.inflate(CardViewBinding.java:131)
        at com.adyen.checkout.card.CardView.<init>(CardView.kt:44)
        at com.adyen.checkout.card.CardView.<init>(CardView.kt:40)
        at com.adyen.checkout.card.CardView.<init>(Unknown Source:11)
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
        at android.view.LayoutInflater.createView(LayoutInflater.java:854)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
        at com.adyen.checkout.dropin.databinding.FragmentCardComponentBinding.inflate(FragmentCardComponentBinding.java:65)
        at com.adyen.checkout.dropin.ui.component.CardComponentDialogFragment.onCreateView(CardComponentDialogFragment.kt:43)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
        at androidx.fragment.app.DialogFragment.performCreateView(DialogFragment.java:489)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7697)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
     Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
        at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:243)
        at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:217)
        at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:145)
        at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:115)
        at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:469)
        at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:428)
            ... 45 more
2021-08-30 20:07:18.607 28645-28645/com.sample I/Process: Sending signal. PID: 28645 SIG: 9
Napster2210 commented 3 years ago

@jesperjohansson It's working perfectly fine for iOS but this issue is specific for Android only. Let me know if you need some other additional information?

jesperjohansson commented 3 years ago

@Napster2210 Could you check your styles.xml file? Add this if it doesn't exist:

  <style name="AdyenCheckout.TextInputLayout">
    <item name="boxStrokeColor">@color/primaryColor</item>
    <item name="hintTextColor">@color/primaryColor</item>
    <item name="android:minHeight">@dimen/input_layout_height</item>
  </style>

https://github.com/Adyen/adyen-android/tree/4.0.0-beta03#common-issues https://github.com/ancon-labs/react-native-adyen-dropin/blob/master/example/android/app/src/main/res/values/styles.xml

Napster2210 commented 3 years ago

@jesperjohansson Thanx a ton for your time and solution! It's working after adding above style.

jesperjohansson commented 3 years ago

@Napster2210 Awesome, np! 🎉