私の顧客のアプリケーションをproguardでコンパイルするのは苦労しています(最新のバージョンのproguardを正しいフォルダにインストールしました)。 --edit--:複数のコピーがインストールされていて、ビルドスクリプトが正しいものを使用していないため、私は最新バージョンを使用していませんでした。ProguardとGoogle SDK/Facebook SDKにはメソッドがありません
コンパイルエラーの大部分を解決するproguard.cfgファイルを作成しました。 アプリ目標最新のAndroid SDK(8)とminSdkは2つのコンパイルエラーが残っている21
に設定されている:StackOverflowの上で
#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
を、Javaの上で、彼らはに何かを追加することで問題を解決Graddle。 Xamarinでは...できません。
proguardファイルにdontwarn命令を追加することで、2つの警告を無視することができました。 それから、コンパイル、デプロイ、実行はほぼ正常です。 ほとんどすべてのアプリが正常に動作します。 - グーグルの認証、
クラッシュ - Googleの位置(ヒューズ)クラッシュ -
をクラッシュ、Facebookの認証を
:除き
。
クラッシュは、メソッドの欠落が原因です。プロガードによって削除されたメソッド。 Facebookのために
:Googleの認証のために
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
:
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;"
Googleの位置(ヒューズ)の場合:
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;"
私もGoogle Playでのプレビューnugetsにしようと試みてきましたサービス。運がない。 これらのエラーを解決する方法はありますか?
** EDIT 1 ** コメントの中のコメント、およびeugenからのリンク、および詳細な診断ビルドを使用して、2時間の修正エラーの後で、proguardファイルは最終的にうまくいきますFacebookとGoogle SDKの両方!
タイ
これらのアイテムを確実に保管する必要があります。私はこのトピックに関するブログを持っています:http://www.jon-douglas.com/2017/07/20/proguard-notes/あなたは基本的に、プロガードによって取り除かれているアイテムの '-keep'を保証する必要があります。次のドキュメントを参照してください:https://www.guardsquare.com/en/proguard/manual/troubleshooting(NotSuchMethodExceptionで検索してください) –