J'ai du mal à faire compiler l'application de mon client avec proguard sur (j'ai installé la dernière version de proguard dans le bon dossier). --edit--: je n'utilisais pas la dernière version car plusieurs copies étaient installées et le script de construction n'utilisait pas le bon.Proguard et Google SDK/Facebook SDK méthodes manquantes
J'ai créé un fichier proguard.cfg qui résout la plupart des erreurs de compilation. Les cibles d'applications dernier SDK Android (8) et un minSdk fixé à 21.
Il y a 2 des erreurs de compilation à gauche:
#1>PROGUARD : warning : com.google.android.gms.internal.zzx: can't find referenced method 'void addHeader(java.lang.String,java.lang.String)' in program class com.google.android.gms.internal.zzx$zza
#1>PROGUARD : warning : com.google.android.gms.internal.zzx$zza: can't find referenced method 'void setURI(java.net.URI)' in program class com.google.android.gms.internal.zzx$zza
sur stackoverflow, sur java, ils résoudre le problème en ajoutant quelque chose à Graddle. Sur Xamarin ... vous ne pouvez pas.
J'ai été capable d'ignorer les 2 avertissements en ajoutant une instruction dontwarn dans le fichier proguard. Il est ensuite compilé, déployé et exécuté presque correctement. Presque toute l'application fonctionne bien.
Sauf:
- Google auth, plantage
- facebook auth, plantage
- emplacement Google (fusible) s'écraser.
Les plantages sont causés par des méthodes manquantes. Méthodes qui ont été supprimées par proguard.
Pour facebook:
NoSuchMethodError: no non-static method"Lcom/facebook/internal/CallbackManagerImpl;.onActivityResult(IILandroid/content/Intent;)Z"
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() [0x0000c] in <e3048811891c45499b4d89daf4d10667>:0
at Java.Interop.JniEnvironment+InstanceMethods.GetMethodID (Java.Interop.JniObjectReference type, System.String name, System.String signature) [0x0005b] in <48117e3895d549baa70c8cbd8592b31c>:0
at Android.Runtime.JNIEnv.GetMethodID (System.IntPtr kls, System.String name, System.String signature) [0x00007] in <758a804725c84b16bcab28b784c87cae>:0
at Xamarin.Facebook.ICallbackManagerInvoker.OnActivityResult (System.Int32 requestCode, System.Int32 resultCode, Android.Content.Intent data) [0x00015] in <53b39e4821ad43cba06dc6bebd7ae5f1>:0
at Appname.Droid.Views.Signup.SignInActivity.OnActivityResult
Pour google auth:
NoSuchMethodError: no non-static method "Lcom/google/android/gms/auth/api/signin/internal/zzc;.silentSignIn(Lcom/google/android/gms/common/api/GoogleApiClient;)Lcom/google/android/gms/common/api/OptionalPendingResult;"
Pour connaître l'emplacement google (fusible):
NoSuchMethodError: no non-static method "Lcom/google/android/gms/internal/zzary;.requestLocationUpdates(Lcom/google/android/gms/common/api/GoogleApiClient;Lcom/google/android/gms/location/LocationRequest;Lcom/google/android/gms/location/LocationListener;Landroid/os/Looper;)Lcom/google/android/gms/common/api/PendingResult;"
J'ai aussi tryed avec les nugets aperçu du jeu de google prestations de service. Pas de chance. Une idée de comment résoudre ces erreurs? En utilisant le lien de John Douglas dans les commentaires, et les liens dans la réponse de eugen, et une construction de diagnostic détaillée, après 2 heures d'erreurs de correction, le fichier proguard fonctionne finalement bien pour Facebook et Google SDK!
Ty tellement!
Vous devez vous assurer de conserver ces éléments.J'ai un blog sur ce sujet: http://www.jon-douglas.com/2017/07/20/proguard-notes/ Vous devez vous assurer que vous «gardez» les éléments supprimés par proguard. Voir les docs sur ceci: https://www.guardsquare.com/fr/proguard/manual/troubleshooting (Recherche "NoSuchMethodException") –