PurpleSoftSrl / sumup_flutter_plugin

A Flutter wrapper to use the SumUp SDK. With this plugin, your app can easily connect to a SumUp terminal, login and accept card payments on Android and iOS.
https://www.purplesoft.io
MIT License
17 stars 17 forks source link

Still crashing on Android due to old version of com.google.android.gms:play-services-location #45

Closed adario closed 1 year ago

adario commented 1 year ago

Hi,

the current plugin version (0.8.0) is still crashing when calling login() or loginWithToken(), due to com.google.android.gms:play-services-location: it looks like the plugin is still using version 19.0.1 instead of 21.0.1 — here's a crash log:

D/AndroidRuntime(20273): Shutting down VM E/AndroidRuntime(20273): FATAL EXCEPTION: main E/AndroidRuntime(20273): Process: com.**.***, PID: 20273 E/AndroidRuntime(20273): java.lang.IncompatibleClassChangeError: Found interface com.google.android.gms.location.FusedLocationProviderClient, but class was expected (declaration of 'com.google.android.gms.location.FusedLocationProviderClient' appears in /data/app/~~KqT6s3BuQuWvKU2N_0ATzg==/com.vantea.vxp-q_SLUQcKr8z_uVaUC_5s5g==/base.apk) E/AndroidRuntime(20273): at com.sumup.base.common.location.GoogleLocationServicesManager.updateLatestLocation(Unknown Source:2) E/AndroidRuntime(20273): at com.sumup.base.common.location.GoogleLocationServicesManager.getLatestLocation(Unknown Source:29) E/AndroidRuntime(20273): at com.sumup.merchant.reader.network.rpcActions.rpcAction.addLocation(SourceFile:1) E/AndroidRuntime(20273): at com.sumup.merchant.reader.network.rpcActions.rpcAction.(SourceFile:168) E/AndroidRuntime(20273): at com.sumup.merchant.reader.identitylib.network.rpcActions.rpcActionLogin.(SourceFile:1) E/AndroidRuntime(20273): at com.sumup.merchant.reader.identitylib.network.rpcActions.rpcActionLoginWithAccessToken.(SourceFile:1) E/AndroidRuntime(20273): at com.sumup.merchant.reader.identitylib.ui.activities.LoginActivity.logInWithAccessToken(SourceFile:1) E/AndroidRuntime(20273): at com.sumup.merchant.reader.identitylib.ui.activities.LoginActivity.handleLogIn(SourceFile:54) E/AndroidRuntime(20273): at com.sumup.merchant.reader.identitylib.ui.activities.LoginActivity.doAutoLogin(SourceFile:2) E/AndroidRuntime(20273): at com.sumup.merchant.reader.identitylib.ui.activities.LoginActivity.onCreate(SourceFile:118) E/AndroidRuntime(20273): at android.app.Activity.performCreate(Activity.java:8290) E/AndroidRuntime(20273): at android.app.Activity.performCreate(Activity.java:8270) E/AndroidRuntime(20273): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1329) E/AndroidRuntime(20273): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4009) E/AndroidRuntime(20273): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4201) E/AndroidRuntime(20273): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) E/AndroidRuntime(20273): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) E/AndroidRuntime(20273): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) E/AndroidRuntime(20273): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2438) E/AndroidRuntime(20273): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime(20273): at android.os.Looper.loopOnce(Looper.java:226) E/AndroidRuntime(20273): at android.os.Looper.loop(Looper.java:313) E/AndroidRuntime(20273): at android.app.ActivityThread.main(ActivityThread.java:8669) E/AndroidRuntime(20273): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime(20273): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) E/AndroidRuntime(20273): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)

Note: this occurs with or without the force "com.google.android.gms:play-services-location" hack in build.gradle — the above log is with the hack.

Any workaround, or ideas about when this will be fixed?

Thank you, D.

sstasi95 commented 1 year ago

Hi,

Unfortunately I don't think I can do anything to fix this issue, SumUp should upgrade the play-services-location dependency. They clearly say that we must use version 19.0.1.

The only thing that you can do if you really need version 21.0.1 is to follow this issue, otherwise you can try to downgrade to 19.0.1.

adario commented 1 year ago

Thanks for your reply — I ended up forcing version 19.0.1, which also required downgrading the geolocator package to this version, which also required overriding the dev_dependencies with geolocator_android: ^4.1.3, which required manual editing of the app-level pubspec.lock, that is, way beyond "taboo"... Here's to hoping that the SumUp team upgrades the Android SDK to a non-paleolithic version of play-services-location. :-(

Please go ahead and close this issue: the ball's clearly in the SumUp field.