Play-games-plugin-for-unity: Unable to build Android with Play Games 0.9.40 + Firebase Analytics 4.1.0

Created on 26 Aug 2017  路  26Comments  路  Source: playgameservices/play-games-plugin-for-unity

Hi,
I'm trying to get Firebase Analytics and this Play Games package working together, but I am hitting errors in my project. To simplify things, I got the Firebase Analytics sample app here and was able to reproduce the error.

Unity version: 5.6.2p4
Firebase version: 4.1.0
Play Games plugin version: 0.9.40
Unity Jar Resolver version: 1.2.46.0

Error message
stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/api/signin/internal/zzm;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/api/signin/zzc;
2 errors; aborting

Steps to repro:

  • Download sample app, open in Unity.
  • Download 4.1.0 Firebase Analytics Unity package and import.
  • Switch to Android platform.
  • Save out a google-services.json files with bundle ID.
  • Window->Firebase to confirm Firebase is good to go.
  • Test building at this point. Verify build completes.
  • Download 0.9.40 Play Games package and import.
  • Get prompted about obsolete files. Pick yes to delete.
  • Window->Google Play Games->Setup->Android Setup. Add some elements to the resources table.
  • Attempt to build. Build fails on dex conversion, with the above error message.
    Also tried this step with the same result--
  • Delete PlayerServicesResolver directory.
  • Download Unity jar resolver package v1.2.46.0 and import.
  • Run Force Resolve client jars. Completes successfully. Same build error.

Also confirmed - I am able to build a clean project with just the GPG plugin imported.

Let me know if I can provide more info. Thank you.

Most helpful comment

I think we're focusing on the wrong problem here. This isn't about solving the "doesn't work for me" or "Android with Play Games 0.9.40 + Firebase Analytics 4.1.0" problem. That's only temporary. Even #1764 solves the issue by manually syncing up the versions of the dependencies.

The problem is that dependency management here is unstable, impossible to debug (zzbdq.class... what?), and requires manual guesswork. Google searches and this thread leads to a lot of "try this, it worked for me" and, even when it works, why it works is not clear. Once a new version is pushed to either package, this song and dance will happen again.

Is this a Firebase problem? Is this a Play Games plugin problem? Is this a problem with the unity jar resolver? Or is this dependency management in Unity in general? If this ends up being a larger Unity issue, maybe the question is: how do we solve it for this plugin, permanently?

All 26 comments

Can you share the list of files in Assets/Plugins/Android? You should have only one version of the files. It sounds like you might have two versions of an old version of something like play-services-base and a newer version of play-services-auth?

I have same problem. I used GPGS 0.9.40 and Firebase 4.1.0.
Entire log:
CommandInvokationFailure: Unable to convert classes into dex format.
C:/Program Files/Java/jdk1.8.0_11\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="F:/Android/android-sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity5.5.3\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -

stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzns;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zznt;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zznu;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zznv;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zznw;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbz;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zznq;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zznr;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zznx;

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Translation has been interrupted
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:613)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
at com.android.dx.command.dexer.Main.run(Main.java:277)
at com.android.dx.command.dexer.Main.main(Main.java:245)
at com.android.dx.command.Main.main(Main.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at SDKMain.main(SDKMain.java:129)
Caused by: java.lang.InterruptedException: Too many errors
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:605)
... 9 more
]
stdout[
processing archive E:\Work\Unity\projects\EzerGame\flappysnake\Temp\StagingArea\android-libraries\MainLibProj\libs.\play-games-plugin-support.jar...
processing com/google/games/bridge/BuildConfig.class...
processing com/google/games/bridge/NativeBridgeActivity.class...
processing com/google/games/bridge/TokenFragment.class...
processing com/google/games/bridge/TokenFragment$1.class...
processing com/google/games/bridge/TokenFragment$2.class...
processing com/google/games/bridge/TokenFragment$TokenRequest.class...
processing com/google/games/bridge/TokenPendingResult.class...
processing com/google/games/bridge/TokenResult.class...
processing archive E:\Work\Unity\projects\EzerGame\flappysnake\Temp\StagingArea\android-libraries\firebase-analytics-11.2.0\libs.\classes.jar...
ignored resource META-INF/
ignored resource META-INF/MANIFEST.MF
ignored resource com/
ignored resource com/google/
ignored resource com/google/android/
ignored resource com/google/android/gms/
ignored resource com/google/android/gms/measurement/
processing com/google/android/gms/measurement/AppMeasurementContentProvider.class...
processing com/google/android/gms/measurement/AppMeasurementInstallReferrerReceiver.class...
processing com/google/android/gms/measurement/AppMeasurementJobService.class...
processing com/google/android/gms/measurement/AppMeasurementReceiver.class...
processing com/google/android/gms/measurement/AppMeasurementService.class...
processing archive E:\Work\Unity\projects\EzerGame\flappysnake\Temp\StagingArea\android-libraries\firebase-analytics-impl-11.2.0\libs.\classes.jar...
ignored resource META-INF/
ignored resource META-INF/MANIFEST.MF
ignored resource com/
ignored resource com/google/
ignored resource com/google/android/
ignored resource com/google/android/gms/
ignored resource com/google/android/gms/internal/
processing com/google/android/gms/internal/zzcaf.class...
processing com/google/android/gms/internal/zzcag.class...
processing com/google/android/gms/internal/zzcah.class...
processing com/google/android/gms/internal/zzcai.class...
processing com/google/android/gms/internal/zzcaj.class...
processing com/google/android/gms/internal/zzcak.class...
processing com/google/android/gms/internal/zzcal.class...
processing com/google/android/gms/internal/zzcam.class...
processing com/google/android/gms/internal/zzcan.class...
processing com/google/android/gms/internal/zzcao.class...
processing com/google/android/gms/internal/zzcap.class...
processing com/google/android/gms/internal/zzcaq.class...
processing com/google/android/gms/internal/zzcar.class...
processing com/google/android/gms/internal/zzcas.class...
processing com/google/android/gms/internal/zzcat.class...
processing com/google/android/gms/internal/zzcau.class...
processing com/google/android/gms/internal/zzcav.class...
processing com/google/android/gms/internal/zzcaw.class...
processing com/google/android/gms/internal/zzcax.class...
processing com/google/android/gms/internal/zzcay.class...
processing com/google/android/gms/internal/zzcaz.class...
processing com/google/android/gms/internal/zzcba.class...
processing com/google/android/gms/internal/zzcbb.class...
processing com/google/android/gms/internal/zzcbc.class...
processing com/google/android/gms/internal/zzcbd.class...
processing com/google/android/gms/internal/zzcbe.class...
processing com/google/android/gms/internal/zzcbf.class...
processing com/google/android/gms/internal/zzcbg.class...
processing com/google/android/gms/internal/zzcbh.class...
processing com/google/android/gms/internal/zzcbi.class...
processing com/google/android/gms/internal/zzcbj.class...
processing com/google/android/gms/internal/zzcbk.class...
processing com/google/android/gms/internal/zzcbl.class...
processing com/google/android/gms/internal/zzcbm.class...
processing com/google/android/gms/internal/zzcbn.class...
processing com/google/android/gms/internal/zzcbo.class...
processing com/google/android/gms/internal/zzcbp.class...
processing com/google/android/gms/internal/zzcbq.class...
processing com/google/android/gms/internal/zzcbr.class...
processing com/google/android/gms/internal/zzcbs.class...
processing com/google/android/gms/internal/zzcbt.class...
processing com/google/android/gms/internal/zzcbu.class...
processing com/google/android/gms/internal/zzcbv.class...
processing com/google/android/gms/internal/zzcbw.class...
processing com/google/android/gms/internal/zzcbx.class...
processing com/google/android/gms/internal/zzcby.class...
processing com/google/android/gms/internal/zzcbz.class...
processing com/google/android/gms/internal/zzcca.class...
processing com/google/android/gms/internal/zzccb.class...
processing com/google/android/gms/internal/zzccc.class...
processing com/google/android/gms/internal/zzccd.class...
processing com/google/android/gms/internal/zzcce.class...
processing com/google/android/gms/internal/zzccf.class...
processing com/google/android/gms/internal/zzccg.class...
processing com/google/android/gms/internal/zzcch.class...
processing com/google/android/gms/internal/zzcci.class...
processing com/google/android/gms/internal/zzccj.class...
processing com/google/android/gms/internal/zzcck.class...
processing com/google/android/gms/internal/zzccl.class...
processing com/google/android/gms/internal/zzccm.class...
processing com/google/android/gms/internal/zzccn.class...
processing com/google/android/gms/internal/zzcco.class...
processing com/google/android/gms/internal/zzcco$zza.class...
processing com/google/android/gms/internal/zzccp.class...
processing com/google/android/gms/internal/zzccq.class...
processing com/google/android/gms/internal/zzccr.class...
processing com/google/android/gms/internal/zzccs.class...
processing com/google/android/gms/internal/zzcct.class...
processing com/google/android/gms/internal/zzccu.class...
processing com/google/android/gms/internal/zzccv.class...
processing com/google/android/gms/internal/zzccw.class...
processing com/google/android/gms/internal/zzccx.class...
processing com/google/android/gms/internal/zzccy.class...
processing com/google/android/gms/internal/zzccz.class...
processing com/google/android/gms/internal/zzcda.class...
processing com/google/android/gms/internal/zzcdb.class...
processing com/google/android/gms/internal/zzcdc.class...
processing com/google/android/gms/internal/zzcdd.class...
processing com/google/android/gms/internal/zzcde.class...
processing com/google/android/gms/internal/zzcdf.class...
processing com/google/android/gms/internal/zzcdg.class...
processing com/google/android/gms/internal/zzcdh.class...
processing com/google/android/gms/internal/zzcdi.class...
processing com/google/android/gms/internal/zzcdj.class...
processing com/google/android/gms/internal/zzcdk.class...
processing com/google/android/gms/internal/zzcdl.class...
processing com/google/android/gms/internal/zzcdm.class...
processing com/google/android/gms/internal/zzcdn.class...
processing com/google/android/gms/internal/zzcdo.class...
processing com/google/android/gms/internal/zzcdp.class...
processing com/google/android/gms/internal/zzcdq.class...
processing com/google/android/gms/internal/zzcdr.class...
processing com/google/android/gms/internal/zzcds.class...
processing com/google/android/gms/internal/zzcdt.class...
processing com/google/android/gms/internal/zzcdu.class...
processing com/google/android/gms/internal/zzcdv.class...
processing com/google/android/gms/internal/zzcdw.class...
processing com/google/android/gms/internal/zzcdx.class...
processing com/google/android/gms/internal/zzcdy.class...
processing com/google/android/gms/internal/zzcdz.class...
processing com/google/android/gms/internal/zzcea.class...
processing com/google/android/gms/internal/zzceb.class...
processing com/google/android/gms/internal/zzcec.class...
processing com/google/android/gms/internal/zzced.class...
processing com/google/android/gms/internal/zzcee.class...
processing com/google/android/gms/internal/zzcef.class...
processing com/google/android/gms/internal/zzceg.class...
processing com/google/android/gms/internal/zzceh.class...
processing com/google/android/gms/internal/zzcei.class...
processing com/google/android/gms/internal/zzcej.class...
processing com/google/android/gms/internal/zzcek.class...
processing com/google/android/gms/internal/zzcel.class...
processing com/google/android/gms/internal/zzcem.class...
processing com/google/android/gms/internal/zzcen.class...
processing com/google/android/gms/internal/zzceo.class...
processing com/google/android/gms/internal/zzcep.class...
processing com/google/android/gms/internal/zzceq.class...
processing com/google/android/gms/internal/zzcer.class...
processing com/google/android/gms/internal/zzces.class...
processing com/google/android/gms/internal/zzcet.class...
processing com/google/android/gms/internal/zzceu.class...
processing com/google/android/gms/internal/zzcev.class...
processing com/google/android/gms/internal/zzcew.class...
processing com/google/android/gms/internal/zzcex.class...
processing com/google/android/gms/internal/zzcey.class...
processing com/google/android/gms/internal/zzcez.class...
processing com/google/android/gms/internal/zzcfa.class...
processing com/google/android/gms/internal/zzcfb.class...
processing com/google/android/gms/internal/zzcfc.class...
processing com/google/android/gms/internal/zzcfd.class...
processing com/google/android/gms/internal/zzcfe.class...
processing com/google/android/gms/internal/zzcff.class...
processing com/google/android/gms/internal/zzcfg.class...
processing com/google/android/gms/internal/zzcfh.class...
processing com/google/android/gms/internal/zzcfi.class...
processing com/google/android/gms/internal/zzcfj.class...
processing com/google/android/gms/internal/zzcfk.class...
processing com/google/android/gms/internal/zzcfl.class...
processing com/google/android/gms/internal/zzcfm.class...
processing com/google/android/gms/internal/zzcfn.class...
processing com/google/android/gms/internal/zzcfo.class...
processing com/google/android/gms/internal/zzcfp.class...
processing com/google/android/gms/internal/zzcfq.class...
processing com/google/android/gms/internal/zzcfr.class...
processing com/google/android/gms/internal/zzcfs.class...
processing com/google/android/gms/internal/zzcft.class...
processing com/google/android/gms/internal/zzcfu.class...
processing com/google/android/gms/internal/zzcfv.class...
processing com/google/android/gms/internal/zzcfw.class...
processing com/google/android/gms/internal/zzcfx.class...
processing com/google/android/gms/internal/zzcfy.class...
processing com/google/android/gms/internal/zzcfz.class...
processing com/google/android/gms/internal/zzcga.class...
processing com/google/android/gms/internal/zzcgb.class...
processing com/google/android/gms/internal/zzcgc.class...
processing com/google/android/gms/internal/zzcgd.class...
processing com/google/android/gms/internal/zzcge.class...
ignored resource com/google/android/gms/measurement/
processing com/google/android/gms/measurement/AppMeasurement.class...
processing com/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty.class...
processing com/google/android/gms/measurement/AppMeasurement$Event.class...
processing com/google/android/gms/measurement/AppMeasurement$EventInterceptor.class...
processing com/google/android/gms/measurement/AppMeasurement$OnEventListener.class...
processing com/google/android/gms/measurement/AppMeasurement$Param.class...
processing com/google/android/gms/measurement/AppMeasurement$UserProperty.class...
processing com/google/android/gms/measurement/AppMeasurement$zza.class...
processing com/google/android/gms/measurement/AppMeasurement$zzb.class...
ignored resource com/google/firebase/
ignored resource com/google/firebase/analytics/
processing com/google/firebase/analytics/FirebaseAnalytics.class...
processing com/google/firebase/analytics/FirebaseAnalytics$Event.class...
processing com/google/firebase/analytics/FirebaseAnalytics$Param.class...
processing com/google/firebase/analytics/FirebaseAnalytics$UserProperty.class...
ignored resource E:\Work\Unity\projects\EzerGame\flappysnake\Temp\StagingArea\android-libraries\firebase-app-unity-4.1.0\libs.\armeabi-v7a\libApp.so
processing archive E:\Work\Unity\projects\EzerGame\flappysnake\Temp\StagingArea\android-libraries\firebase-app-unity-4.1.0\libs.\classes.jar...
ignored resource E:\Work\Unity\projects\EzerGame\flappysnake\Temp\StagingArea\android-libraries\firebase-app-unity-4.1.0\libs.\x86\libApp.so
processing archive E:\Work\Unity\projects\EzerGame\flappysnake\Temp\StagingArea\android-libraries\firebase-common-11.2.0\libs.\classes.jar...
ignored resource META-INF/
ignored resource META-INF/MANIFEST.MF
ignored resource com/
ignored resource com/google/
ignored resource com/google/android/
ignored resource com/google/android/gms/
ignored resource com/google/android/gms/internal/
processing com/google/android/gms/internal/zzeaa.class...
processing com/google/android/gms/internal/zzeab.class...
processing com/google/android/gms/internal/zzeac.class...
processing com/google/android/gms/internal/zzead.class...
processing com/google/android/gms/internal/zzeae.class...
ignored resource com/google/firebase/
processing com/google/firebase/FirebaseApp.class...
processing com/google/firebase/FirebaseApp$zza.class...
processing com/google/firebase/FirebaseApp$zzb.class...
processing com/google/firebase/FirebaseApp$zzc.class...
processing com/google/firebase/FirebaseApp$zzd.class...
processing com/google/firebase/FirebaseNetworkException.class...
processing com/google/firebase/FirebaseOptions.class...
processing com/google/firebase/FirebaseOptions$Builder.class...
processing com/google/firebase/FirebaseTooManyRequestsException.class...
ignored resource com/google/firebase/auth/
processing com/google/firebase/auth/FirebaseAuthException.class...
processing com/google/firebase/auth/GetTokenResult.class...
ignored resource com/google/firebase/provider/
processing com/google/firebase/provider/Fi

Seams GPGS and Firebase using different version of AppMeasurement classes. But How to resovle?

@claywilkinson Sure, here is the Assets/Plugins/Android directory
https://imgur.com/a/6jW8z

Under the MainLibProj folder, there is a sub libs folder with a play-games-plugin-support.jar in it as well, dated August 9th.

You need to replace google play version in PluginVersion.cs

// used to check for the correct min version or play services: 11.2
public const int MinGmsCoreVersionCode = 11200000;

// used to get the right version of dependencies.
public const string PlayServicesVersionConstraint = "11+";

@tnbao91 I have to admit that I was skeptical, but that does appear to allow me to successfully build. Thank you!

This isn't solved. At first I was getting the same error message as @crunchbury but, after attempting the solution proposed by @tnbao91, I'm ending up with the same error message as @daneric.

Also, this isn't restricted to Firebase Analytics. The same thing happens with Firebase Messaging.

@saiichihashimoto Can you screenshot your Plugins/Android folder?

@tnbao91

image

All player-services (jar/aar) need to be same version. I think you should update all to 11.2.0

@tnbao91 I don't understand how. I've installed the newest plugin from both the Play Games Plugin for Unity and Firebase for Unity. How do I get everything to 11.2.0?

You need to replace google play version in PluginVersion.cs

// used to check for the correct min version or play services: 11.2
public const int MinGmsCoreVersionCode = 11200000;

// used to get the right version of dependencies.
public const string PlayServicesVersionConstraint = "11+";

Follow my comment

I mentioned this before, but I tried the solution proposed by @tnbao91 and I'm getting the same error message as @daneric. I believe I've done everything @tnbao91 suggested but, just in case:

After doing this in PluginVersion.cs:

image

I ended up with this:

image

And the error I've received is:

CommandInvokationFailure: Unable to convert classes into dex format.
/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/saiichi/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -

stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbdq;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbdr;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbds;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbdt;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbdu;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/internal/zzbdv;
6 errors; aborting
]
stdout[
processing archive /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/MainLibProj/libs/./play-games-plugin-support.jar...
processing com/google/games/bridge/BuildConfig.class...
processing com/google/games/bridge/NativeBridgeActivity.class...
processing com/google/games/bridge/TokenFragment.class...
processing com/google/games/bridge/TokenFragment$1.class...
processing com/google/games/bridge/TokenFragment$2.class...
processing com/google/games/bridge/TokenFragment$TokenRequest.class...
processing com/google/games/bridge/TokenPendingResult.class...
processing com/google/games/bridge/TokenResult.class...
processing archive /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-analytics-11.2.0/libs/./classes.jar...
ignored resource META-INF/
ignored resource META-INF/MANIFEST.MF
ignored resource com/
ignored resource com/google/
ignored resource com/google/android/
ignored resource com/google/android/gms/
ignored resource com/google/android/gms/measurement/
processing com/google/android/gms/measurement/AppMeasurementContentProvider.class...
processing com/google/android/gms/measurement/AppMeasurementInstallReferrerReceiver.class...
processing com/google/android/gms/measurement/AppMeasurementJobService.class...
processing com/google/android/gms/measurement/AppMeasurementReceiver.class...
processing com/google/android/gms/measurement/AppMeasurementService.class...
processing archive /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-analytics-impl-11.2.0/libs/./classes.jar...
ignored resource META-INF/
ignored resource META-INF/MANIFEST.MF
ignored resource com/
ignored resource com/google/
ignored resource com/google/android/
ignored resource com/google/android/gms/
ignored resource com/google/android/gms/internal/
processing com/google/android/gms/internal/zzcaf.class...
processing com/google/android/gms/internal/zzcag.class...
processing com/google/android/gms/internal/zzcah.class...
processing com/google/android/gms/internal/zzcai.class...
processing com/google/android/gms/internal/zzcaj.class...
processing com/google/android/gms/internal/zzcak.class...
processing com/google/android/gms/internal/zzcal.class...
processing com/google/android/gms/internal/zzcam.class...
processing com/google/android/gms/internal/zzcan.class...
processing com/google/android/gms/internal/zzcao.class...
processing com/google/android/gms/internal/zzcap.class...
processing com/google/android/gms/internal/zzcaq.class...
processing com/google/android/gms/internal/zzcar.class...
processing com/google/android/gms/internal/zzcas.class...
processing com/google/android/gms/internal/zzcat.class...
processing com/google/android/gms/internal/zzcau.class...
processing com/google/android/gms/internal/zzcav.class...
processing com/google/android/gms/internal/zzcaw.class...
processing com/google/android/gms/internal/zzcax.class...
processing com/google/android/gms/internal/zzcay.class...
processing com/google/android/gms/internal/zzcaz.class...
processing com/google/android/gms/internal/zzcba.class...
processing com/google/android/gms/internal/zzcbb.class...
processing com/google/android/gms/internal/zzcbc.class...
processing com/google/android/gms/internal/zzcbd.class...
processing com/google/android/gms/internal/zzcbe.class...
processing com/google/android/gms/internal/zzcbf.class...
processing com/google/android/gms/internal/zzcbg.class...
processing com/google/android/gms/internal/zzcbh.class...
processing com/google/android/gms/internal/zzcbi.class...
processing com/google/android/gms/internal/zzcbj.class...
processing com/google/android/gms/internal/zzcbk.class...
processing com/google/android/gms/internal/zzcbl.class...
processing com/google/android/gms/internal/zzcbm.class...
processing com/google/android/gms/internal/zzcbn.class...
processing com/google/android/gms/internal/zzcbo.class...
processing com/google/android/gms/internal/zzcbp.class...
processing com/google/android/gms/internal/zzcbq.class...
processing com/google/android/gms/internal/zzcbr.class...
processing com/google/android/gms/internal/zzcbs.class...
processing com/google/android/gms/internal/zzcbt.class...
processing com/google/android/gms/internal/zzcbu.class...
processing com/google/android/gms/internal/zzcbv.class...
processing com/google/android/gms/internal/zzcbw.class...
processing com/google/android/gms/internal/zzcbx.class...
processing com/google/android/gms/internal/zzcby.class...
processing com/google/android/gms/internal/zzcbz.class...
processing com/google/android/gms/internal/zzcca.class...
processing com/google/android/gms/internal/zzccb.class...
processing com/google/android/gms/internal/zzccc.class...
processing com/google/android/gms/internal/zzccd.class...
processing com/google/android/gms/internal/zzcce.class...
processing com/google/android/gms/internal/zzccf.class...
processing com/google/android/gms/internal/zzccg.class...
processing com/google/android/gms/internal/zzcch.class...
processing com/google/android/gms/internal/zzcci.class...
processing com/google/android/gms/internal/zzccj.class...
processing com/google/android/gms/internal/zzcck.class...
processing com/google/android/gms/internal/zzccl.class...
processing com/google/android/gms/internal/zzccm.class...
processing com/google/android/gms/internal/zzccn.class...
processing com/google/android/gms/internal/zzcco.class...
processing com/google/android/gms/internal/zzcco$zza.class...
processing com/google/android/gms/internal/zzccp.class...
processing com/google/android/gms/internal/zzccq.class...
processing com/google/android/gms/internal/zzccr.class...
processing com/google/android/gms/internal/zzccs.class...
processing com/google/android/gms/internal/zzcct.class...
processing com/google/android/gms/internal/zzccu.class...
processing com/google/android/gms/internal/zzccv.class...
processing com/google/android/gms/internal/zzccw.class...
processing com/google/android/gms/internal/zzccx.class...
processing com/google/android/gms/internal/zzccy.class...
processing com/google/android/gms/internal/zzccz.class...
processing com/google/android/gms/internal/zzcda.class...
processing com/google/android/gms/internal/zzcdb.class...
processing com/google/android/gms/internal/zzcdc.class...
processing com/google/android/gms/internal/zzcdd.class...
processing com/google/android/gms/internal/zzcde.class...
processing com/google/android/gms/internal/zzcdf.class...
processing com/google/android/gms/internal/zzcdg.class...
processing com/google/android/gms/internal/zzcdh.class...
processing com/google/android/gms/internal/zzcdi.class...
processing com/google/android/gms/internal/zzcdj.class...
processing com/google/android/gms/internal/zzcdk.class...
processing com/google/android/gms/internal/zzcdl.class...
processing com/google/android/gms/internal/zzcdm.class...
processing com/google/android/gms/internal/zzcdn.class...
processing com/google/android/gms/internal/zzcdo.class...
processing com/google/android/gms/internal/zzcdp.class...
processing com/google/android/gms/internal/zzcdq.class...
processing com/google/android/gms/internal/zzcdr.class...
processing com/google/android/gms/internal/zzcds.class...
processing com/google/android/gms/internal/zzcdt.class...
processing com/google/android/gms/internal/zzcdu.class...
processing com/google/android/gms/internal/zzcdv.class...
processing com/google/android/gms/internal/zzcdw.class...
processing com/google/android/gms/internal/zzcdx.class...
processing com/google/android/gms/internal/zzcdy.class...
processing com/google/android/gms/internal/zzcdz.class...
processing com/google/android/gms/internal/zzcea.class...
processing com/google/android/gms/internal/zzceb.class...
processing com/google/android/gms/internal/zzcec.class...
processing com/google/android/gms/internal/zzced.class...
processing com/google/android/gms/internal/zzcee.class...
processing com/google/android/gms/internal/zzcef.class...
processing com/google/android/gms/internal/zzceg.class...
processing com/google/android/gms/internal/zzceh.class...
processing com/google/android/gms/internal/zzcei.class...
processing com/google/android/gms/internal/zzcej.class...
processing com/google/android/gms/internal/zzcek.class...
processing com/google/android/gms/internal/zzcel.class...
processing com/google/android/gms/internal/zzcem.class...
processing com/google/android/gms/internal/zzcen.class...
processing com/google/android/gms/internal/zzceo.class...
processing com/google/android/gms/internal/zzcep.class...
processing com/google/android/gms/internal/zzceq.class...
processing com/google/android/gms/internal/zzcer.class...
processing com/google/android/gms/internal/zzces.class...
processing com/google/android/gms/internal/zzcet.class...
processing com/google/android/gms/internal/zzceu.class...
processing com/google/android/gms/internal/zzcev.class...
processing com/google/android/gms/internal/zzcew.class...
processing com/google/android/gms/internal/zzcex.class...
processing com/google/android/gms/internal/zzcey.class...
processing com/google/android/gms/internal/zzcez.class...
processing com/google/android/gms/internal/zzcfa.class...
processing com/google/android/gms/internal/zzcfb.class...
processing com/google/android/gms/internal/zzcfc.class...
processing com/google/android/gms/internal/zzcfd.class...
processing com/google/android/gms/internal/zzcfe.class...
processing com/google/android/gms/internal/zzcff.class...
processing com/google/android/gms/internal/zzcfg.class...
processing com/google/android/gms/internal/zzcfh.class...
processing com/google/android/gms/internal/zzcfi.class...
processing com/google/android/gms/internal/zzcfj.class...
processing com/google/android/gms/internal/zzcfk.class...
processing com/google/android/gms/internal/zzcfl.class...
processing com/google/android/gms/internal/zzcfm.class...
processing com/google/android/gms/internal/zzcfn.class...
processing com/google/android/gms/internal/zzcfo.class...
processing com/google/android/gms/internal/zzcfp.class...
processing com/google/android/gms/internal/zzcfq.class...
processing com/google/android/gms/internal/zzcfr.class...
processing com/google/android/gms/internal/zzcfs.class...
processing com/google/android/gms/internal/zzcft.class...
processing com/google/android/gms/internal/zzcfu.class...
processing com/google/android/gms/internal/zzcfv.class...
processing com/google/android/gms/internal/zzcfw.class...
processing com/google/android/gms/internal/zzcfx.class...
processing com/google/android/gms/internal/zzcfy.class...
processing com/google/android/gms/internal/zzcfz.class...
processing com/google/android/gms/internal/zzcga.class...
processing com/google/android/gms/internal/zzcgb.class...
processing com/google/android/gms/internal/zzcgc.class...
processing com/google/android/gms/internal/zzcgd.class...
processing com/google/android/gms/internal/zzcge.class...
ignored resource com/google/android/gms/measurement/
processing com/google/android/gms/measurement/AppMeasurement.class...
processing com/google/android/gms/measurement/AppMeasurement$ConditionalUserProperty.class...
processing com/google/android/gms/measurement/AppMeasurement$Event.class...
processing com/google/android/gms/measurement/AppMeasurement$EventInterceptor.class...
processing com/google/android/gms/measurement/AppMeasurement$OnEventListener.class...
processing com/google/android/gms/measurement/AppMeasurement$Param.class...
processing com/google/android/gms/measurement/AppMeasurement$UserProperty.class...
processing com/google/android/gms/measurement/AppMeasurement$zza.class...
processing com/google/android/gms/measurement/AppMeasurement$zzb.class...
ignored resource com/google/firebase/
ignored resource com/google/firebase/analytics/
processing com/google/firebase/analytics/FirebaseAnalytics.class...
processing com/google/firebase/analytics/FirebaseAnalytics$Event.class...
processing com/google/firebase/analytics/FirebaseAnalytics$Param.class...
processing com/google/firebase/analytics/FirebaseAnalytics$UserProperty.class...
ignored resource /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-analytics-unity-4.1.0/libs/./armeabi-v7a/libAnalytics.so
processing archive /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-analytics-unity-4.1.0/libs/./classes.jar...
ignored resource /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-analytics-unity-4.1.0/libs/./x86/libAnalytics.so
ignored resource /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-app-unity-4.1.0/libs/./armeabi-v7a/libApp.so
processing archive /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-app-unity-4.1.0/libs/./classes.jar...
ignored resource /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-app-unity-4.1.0/libs/./x86/libApp.so
processing archive /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-common-11.2.0/libs/./classes.jar...
ignored resource META-INF/
ignored resource META-INF/MANIFEST.MF
ignored resource com/
ignored resource com/google/
ignored resource com/google/android/
ignored resource com/google/android/gms/
ignored resource com/google/android/gms/internal/
processing com/google/android/gms/internal/zzeaa.class...
processing com/google/android/gms/internal/zzeab.class...
processing com/google/android/gms/internal/zzeac.class...
processing com/google/android/gms/internal/zzead.class...
processing com/google/android/gms/internal/zzeae.class...
ignored resource com/google/firebase/
processing com/google/firebase/FirebaseApp.class...
processing com/google/firebase/FirebaseApp$zza.class...
processing com/google/firebase/FirebaseApp$zzb.class...
processing com/google/firebase/FirebaseApp$zzc.class...
processing com/google/firebase/FirebaseApp$zzd.class...
processing com/google/firebase/FirebaseNetworkException.class...
processing com/google/firebase/FirebaseOptions.class...
processing com/google/firebase/FirebaseOptions$Builder.class...
processing com/google/firebase/FirebaseTooManyRequestsException.class...
ignored resource com/google/firebase/auth/
processing com/google/firebase/auth/FirebaseAuthException.class...
processing com/google/firebase/auth/GetTokenResult.class...
ignored resource com/google/firebase/provider/
processing com/google/firebase/provider/FirebaseInitProvider.class...
processing com/google/firebase/zza.class...
processing com/google/firebase/zzc.class...
processing archive /Users/saiichi/Workspace/sun-blocks/Temp/StagingArea/android-libraries/firebase-config-11.2.0/libs/./classes.jar...
ignored resource META-INF/
ignored resource META-INF/MANIFEST.MF
ignored resource com/
ignored resource com/google/
ignored resource com/google/android/
ignored resource com/google/android/gms/
ignored resource com/google/android/gms/internal/
processing com/google/android/gms/internal/zzbdq.class...
processing com/google/android/gms/internal/zzbdr.class...
processing com/google/android/gms/internal/zzbds.class...
processing com/google/android/gms/internal/zzbdt.class...
processing com/google/android/gms/internal/zzbdu.class<message truncated>

@saiichihashimoto Not sure if it will help, but did you try updating your play services resolver to the latest? Looks like they have a new version out. https://github.com/googlesamples/unity-jar-resolver

@crunchbury Just did. No change of any kind.

Well, no change to the errors that occur.

Sorry to hear. My suspicion is that you definitely have duplicate jars or aars somewhere. Are you using other Android plug-ins? Unfortunately it's pretty hard and time consuming to break apart the jars/aars to see the classes of each one and figure out where "zzbdq.class" and others exist. I wish there was better error messaging.

My recommendation would be to get the Firebase sample app for the functionality you're using (here's the analytics one), install Firebase and GPGS in it, and compare to your own setup. I had to implement tnbao's solution as stated above to get it to build, but it worked for me. If you can get the sample app working, hopefully you can just wholesale bring over the plug-ins directory from there.

I think we're focusing on the wrong problem here. This isn't about solving the "doesn't work for me" or "Android with Play Games 0.9.40 + Firebase Analytics 4.1.0" problem. That's only temporary. Even #1764 solves the issue by manually syncing up the versions of the dependencies.

The problem is that dependency management here is unstable, impossible to debug (zzbdq.class... what?), and requires manual guesswork. Google searches and this thread leads to a lot of "try this, it worked for me" and, even when it works, why it works is not clear. Once a new version is pushed to either package, this song and dance will happen again.

Is this a Firebase problem? Is this a Play Games plugin problem? Is this a problem with the unity jar resolver? Or is this dependency management in Unity in general? If this ends up being a larger Unity issue, maybe the question is: how do we solve it for this plugin, permanently?

I too hit this issue, I would say it occurs for me every other GPS or Firebase update.
Here is 'One Weird Trick That Always Works'
Start a blank project. Import GPGS - build - Import Firebase package 1 - build - package 2 - build - and so on until all packages are installed and presumably still building. If you use AdMob - import AdMob but be sure uncheck the 'Play Services Resolver install as it is likely out of date.
Check the folder structure in your temp project, then in your actual working project delete those folders in your real project and paste in folders from temp project (close the project first). Then reinstall any other non-google stuff (aka stuff that works and doesn't drive you to drink, but you still had to nuke it cause of.... calm as still water) anyways, after installing the 'good' plugins everything should be back to normal, this is how I got firebase 4.1 installed.

But to @saiichihashimoto 's point, the dependency management BS doesn't work. This is a text book example of over engineering. Just give as one good tech writer who can explain what file to put where and which ones to remove and all this nonsense will go away. Even with all these resolver bells and whistles and probably countless man hours of coding (definitely supporting) to make this easy I still have to do it manually so just let us cut out the middle man and do it manually without something doing automatically but incorrectly.

tldr - I rant about google and stuff...
Also the reason sh!t never works from google is cause they don't build games, they build platforms and as what seems to be an afterthought at times, plugins to access those platforms. They test that the plugin works with their other plugins and then job done, call it a day. This is why I install the plugins into an empty project, it likely better matches their test environment. Actually its a bit more complicated, they do have some 'game test things' or apps built with Unity, but they do not begin to approach the level of complexity of a real shipping app with a dozen or so competing plugins, store, cloud service integration...blah blah blah, point is they make platforms. They are not going to get this end of the pipeline right, not until they go through the trouble to do the thing - make the games - that they are trying to support. But I'm sure Unity market exposure is a fraction of a fraction of their revenue so... why would they do that.

I also have this issue with latest Google Play Services, Firebase Messaging and jar resolver plugins as of this date.

@claywilkinson, what would you say is the recommended solution for these? Both:

  • [ ] Building with both these packages now, and
  • [ ] Being able to update either package in a sane manner?

still have the problem with firebase and GPG here too , deleted duplicate class on play-services-auth-10.0.6.aar(class.jar), I can now build but seam like I can't connect to GPG.

Still happening with 0.9.41 and 4.2.0

The latest version of the plugins for both Firebase and GPGS use an updated Jar resolver which handles the multiple library issue much better. It sounds like there are multiple issues from the multiple people on the thread.

I recommend:

  1. Use the latest versions of the plugins. For GPGS that is 0.9.42
  2. Confirm that the play-services and firebase libraries that are added to Assets/Plugins/Android are all the same version. If they are not, delete the lower numbered versions.
  3. If you still have problems, open an issue with which version of the plugins you are using, and the contents of your Assets/Plugins/Android directory. Please do not add your info to another's issue since if it is different, it can get confusing.

Thanks!

Im one more in the boat. Every update, all that was working, breaks again. This time, im in a 30 hours loop until i reached here. It's so frustrating and confusing that im starting to hate game development when this happens.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

temresen picture temresen  路  4Comments

bibbis picture bibbis  路  4Comments

parkJeongOck picture parkJeongOck  路  4Comments

lolmourne picture lolmourne  路  3Comments

brentbartlett picture brentbartlett  路  5Comments