xamarin / GooglePlayServicesComponents

Other
315 stars 148 forks source link

FirebaseAnalytics & FirebaseMessaging, version mismatch on gms.measurement.base #280

Open vincentcastagna opened 4 years ago

vincentcastagna commented 4 years ago

Xamarin.Android Version (eg: 6.0):

Xamarin.Android 9.1.7.0

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

Windows 10 & VS2017 15.9.15

Google Play Services Version (eg: 8.4.0):

Xamarin.GooglePlayServices.Basement => 71.1620.0 Xamarin.Firebase.Messaging => 71.1740.0 Xamarin.Firebase.Analytics => 71.1630.0

Describe your Issue:

Throw following error when push notification is received :

ava.Lang.LinkageError: No static field zzaqu of type [Ljava/lang/String; in class Lcom/google/android/gms/measurement/AppMeasurement$UserProperty; or its superclasses (declaration of 'com.google.android.gms.measurement.AppMeasurement$UserProperty' appears in /data/app/com.nventive.mymd-4sXwTBz0mCrB6bFGNl5nPQ==/base.apk!classes3.dex) --- End of managed Java.Lang.LinkageError stack trace --- java.lang.NoSuchFieldError: No static field zzaqu of type [Ljava/lang/String; in class Lcom/google/android/gms/measurement/AppMeasurement$UserProperty; or its superclasses (declaration of 'com.google.android.gms.measurement.AppMeasurement$UserProperty' appears in /data/app/com.nventive.mymd-4sXwTBz0mCrB6bFGNl5nPQ==/base.apk!classes3.dex) at com.google.firebase.analytics.connector.internal.zzc.<clinit>(Unknown Source:154) at com.google.firebase.analytics.connector.internal.zzc.zzft(Unknown Source:1) at com.google.firebase.analytics.connector.AnalyticsConnectorImpl.logEvent(Unknown Source:30) at com.google.firebase.messaging.MessagingAnalytics.zza(Unknown Source:72) at com.google.firebase.messaging.MessagingAnalytics.logNotificationReceived(Unknown Source:2) at com.google.firebase.messaging.FirebaseMessagingService.zzd(Unknown Source:50) at com.google.firebase.iid.zzc.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at com.google.android.gms.common.util.concurrent.zza.run(Unknown Source:6) at java.lang.Thread.run(Thread.java:764)

Steps to Reproduce (with link to sample solution if possible):

Have both dependency referenced in the project, latest Xamarin.Firebase.Analytics & Xamarin.Firebase.Messaging.

Receiving a push notification will produce this error because of version mismatch on this dependency :

Maybe you have some workaround to propose about this. Or maybe you have already adressed this issue and you are working on it.

Iguins commented 4 years ago

I'm wondering if we will be force to update all the subdependencies of Xamarin.Firebase.Messaging at some point to be compatible with gms.measurement.base 71.1630.0

moljac commented 4 years ago

@GuillaumeSE @vincentcastagna Guys do you have any other dependencies? New AndroidX Material maybe?

https://github.com/xamarin/AndroidX/blob/master/config.json#L716-L718

vincentcastagna commented 4 years ago

@moljac Nope. This project targets Android 9 ... no AndroidX libraries at all.

vincentcastagna commented 4 years ago

Hello team. @moljac any news regarding this issue ?

aoershov commented 4 years ago

We have the same issue. Any update?

JoacimWall commented 4 years ago

We have the same issue. We use Firebase analytics but i tested to remove Xamarin.Firebase.Analytics and xxx.impl just to test if it would work then i notis that it works. And analytics worked also. My Firebase.Analytics was from the Xamarin.GooglePlayServices.Measurement.Api.

gfortin13 commented 4 years ago

I am experiencing the exact same issue. Any updates on this?

trinnguyen commented 4 years ago

I run into this issue on a Xamarin.Android project using the new AndroidX packages for UI. Got a workaround solution by managing the right versions of Nuget packages for Analytics, Messaging and Measurement to prevent the mismatch versioning issue. Below is a part of my package.json:

<package id="Xamarin.Firebase.Analytics" version="71.1606.0" targetFramework="monoandroid10.0" />
<package id="Xamarin.Firebase.Analytics.Impl" version="71.1624.0" targetFramework="monoandroid10.0" />
<package id="Xamarin.Firebase.Messaging" version="71.1740.0" targetFramework="monoandroid10.0" />
<package id="Xamarin.GooglePlayServices.Basement" version="71.1620.0" targetFramework="monoandroid10.0" />
<package id="Xamarin.GooglePlayServices.Measurement.Api" version="71.1604.0" targetFramework="monoandroid10.0" />
<package id="Xamarin.GooglePlayServices.Measurement.Base" version="71.1605.0" targetFramework="monoandroid10.0" />

Be sure that you downgrade the Xamarin.Firebase.Analytics.Impl and then Xamarin.GooglePlayServices.Measurement.Base to 71.1605.0 so the Measurement APIs can work with both Analytics and Messaging!

merravid commented 4 years ago

Same issue here. Wasted 3 hours trying to find a resolution, until I found this workaround.

In my case Xamarin.GooglePlayServices.Measurement.Api and Xamarin.GooglePlayServices.Measurement.Base were not installed, even though Xamarin.Firebase.Analytics was, and it lists those two as dependencies. I manually installed them and then downgraded them per trinnguyen's workaround.

A fix would be appreciated.

epsmae commented 2 years ago

@moljac any update on that?