sumup / sumup-android-sdk

Sample App for the SumUp Android SDK
Other
100 stars 29 forks source link

sumup cordova plugin crashes with an inflateexception when opening the login activity #139

Closed ambroseadamson closed 3 years ago

ambroseadamson commented 3 years ago

I am currently developing a cordova plugin wrapper of the sumup android sdk so that we can support the sumup card reader payments in our ionic/angular app.

every time when attempt to perform a transparent login with via an access token the app crashes on the following error:

2020-08-13 14:04:53.614 12832-12832/com.cordic.intDriver E/AndroidRuntime: FATAL EXCEPTION: main Process: com.cordic.intDriver, PID: 12832 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cordic.intDriver/com.sumup.merchant.ui.Activities.LoginActivity}: android.view.InflateException: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Error inflating class com.sumup.merchant.ui.Views.ClearableAutoCompleteTextView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: android.view.InflateException: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Error inflating class com.sumup.merchant.ui.Views.ClearableAutoCompleteTextView Caused by: android.view.InflateException: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Error inflating class com.sumup.merchant.ui.Views.ClearableAutoCompleteTextView 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.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.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 android.view.LayoutInflater.inflate(LayoutInflater.java:481) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) at com.sumup.merchant.ui.Activities.LoginActivity.onCreate(SourceFile:215) at android.app.Activity.performCreate(Activity.java:7825) at android.app.Activity.performCreate(Activity.java:7814) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 2020-08-13 14:04:53.615 12832-12832/com.cordic.intDriver E/AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' appears in /data/app/com.cordic.intDriver-q0aBhJ8QXwS8F_ZBnxC2fQ==/base.apk) at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119) at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208) at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:110) at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38) at android.support.v7.widget.AppCompatAutoCompleteTextView.(AppCompatAutoCompleteTextView.java:81) at android.support.v7.widget.AppCompatAutoCompleteTextView.(AppCompatAutoCompleteTextView.java:64) at com.sumup.merchant.ui.Views.ClearableAutoCompleteTextView.(SourceFile:34) ... 38 more 2020-08-13 14:04:53.617 12832-12832/com.cordic.intDriver E/com.marianhello.logging.UncaughtExceptionLogger: FATAL EXCEPTION: mainjava.lang.RuntimeException: Unable to start activity ComponentInfo{com.cordic.intDriver/com.sumup.merchant.ui.Activities.LoginActivity}: android.view.InflateException: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Error inflating class com.sumup.merchant.ui.Views.ClearableAutoCompleteTextView at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7356) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) Caused by: android.view.InflateException: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Error inflating class com.sumup.merchant.ui.Views.ClearableAutoCompleteTextView Caused by: android.view.InflateException: Binary XML file line #94 in com.cordic.intDriver:layout/sumup_activity_login: Error inflating class com.sumup.merchant.ui.Views.ClearableAutoCompleteTextView Caused by: java.lang.reflect.InvocationTargetException: null 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.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.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 android.view.LayoutInflater.inflate(LayoutInflater.java:481) at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:287) at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139) at com.sumup.merchant.ui.Activities.LoginActivity.onCreate(SourceFile:215) at android.app.Activity.performCreate(Activity.java:7825) at android.app.Activity.performCreate(Activity.java:7814) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)

any help would be greatly appreciated.

thanks,

Ambrose Adamson

Mike-Lopez commented 3 years ago

Hello,

I have created a ticket for our product team to take a look into this issue.

Once we deploy a fix, I will update you immediately.

ambroseadamson commented 3 years ago

@Mike-Lopez I was able to fix the issue. I found the issue was due to build.gradle file in my cordova plugin where I was targeting API 29 in my plugin, but the following build.gradle fragment:

configurations.all { resolutionStrategy { force 'com.android.support:support-v4:26.1.0' force 'com.android.support:appcompat-v7:26.1.0' force 'com.android.support:cardview-v7:26.1.0' force 'com.android.support:design:26.1.0' } } }

was resulting in calls to TintTypedArray.getFont in API 26 that were incompatible. removing this fragment and changing the dependencies to :

dependencies { implementation 'com.android.support:support-v4:28.0.0' implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:cardview-v7:28.0.0' implementation 'com.android.support:design:28.8.0 ' implementation 'com.google.android.gms:play-services-location:16.0.0'

implementation 'com.sumup:merchant-sdk:3.2.2'

}

fixed the issue.