xamarin / GooglePlayServicesComponents

Other
315 stars 148 forks source link

Crash in SafetyNet #314

Open kikogassen opened 4 years ago

kikogassen commented 4 years ago

Android Version (eg: 6.0):

Android 10

Operating System & Version (eg: Mac OSX 10.11):

Windows 10

Google Play Services Version (eg: 8.4.0):

com.google.android.gms:play-services-base:17.2.0

Describe your Issue:

I'm using the SafetyNet dependency (17.0.0) and the Base dependency (17.1.0) to make the SafetyNet Attestation: https://developer.android.com/training/safetynet/attestation. But when I upgraded the Base version from 17.1.0 to 17.2.0, the SafetyNet Attestation request crashed my app, which the exception stack trace is included below. I returned the version from 17.1.0 and all came allright again.

Include any relevant Exception Stack traces, build logs, adb logs:


       at android.os.AsyncTask$4.done(AsyncTask.java:399)
       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
       at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
       at java.util.concurrent.FutureTask.run(FutureTask.java:271)
       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:919)

Caused by java.lang.NoSuchMethodError: No static method isAtLeastR()Z in class Landroidx/core/os/BuildCompat; or its super classes (declaration of 'androidx.core.os.BuildCompat' appears in /data/app/com.combateafraude.demo-NeQblquSEO4xQIPDyr3uoA==/base.apk)
       at com.google.android.gms.common.util.PlatformVersion.isAtLeastR(com.google.android.gms:play-services-basement@@17.2.0:21)
       at com.google.android.gms.common.api.GoogleApi.zaa(com.google.android.gms:play-services-base@@17.2.0:128)
       at com.google.android.gms.common.api.GoogleApi.<init>(com.google.android.gms:play-services-base@@17.2.0:23)
       at com.google.android.gms.common.api.GoogleApi.<init>(com.google.android.gms:play-services-base@@17.2.0:54)
       at com.google.android.gms.safetynet.SafetyNetClient.<init>(:8)
       at com.google.android.gms.safetynet.SafetyNet.getClient(:2)
       at com.combateafraude.security.controller.OnlineInformations.getHasAndroidCertification(OnlineInformations.java:69)
       at com.combateafraude.security.controller.OnlineInformations.doInBackground(OnlineInformations.java:60)
       at com.combateafraude.security.controller.OnlineInformations.doInBackground(OnlineInformations.java:33)
       at android.os.AsyncTask$3.call(AsyncTask.java:378)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
       at java.lang.Thread.run(Thread.java:919)```
moljac commented 4 years ago

@kikogassen

in class Landroidx/core/os/BuildCompat; or its super classes (declaration of 'androidx.core.os.BuildCompat'

GooglePlayServices with AndroidX dependencies have not yet been published.

Can you try lowering TargetFramework to 9.0 (instead of 10)?

kikogassen commented 4 years ago

@moljac

I was using AndroidX with the Play Services Base version 17.1.0 before updating to 17.2.0 and was working.

Are you saying that only the Play Services Base version 17.2.0 isn't compatible with AndroidX?

moljac commented 4 years ago

@kikogassen I work currently on 2 versions of GPS-FB, old/legacy Android.Support maintenance and new with AndroidX. I need to check config files and dependencies for those artifacts.

And of course I need to search for isAtLeastR and why that static method was not published.

Trying to brainstorm and get as much as possible information.

Thanks