2017-10-10 2 views
-1

J'ai fait ma recherche pour toute la journée. La plupart des gens sont confrontés à un problème en raison de la sortie SHA1, mais j'ai vérifié en utilisant toutes les méthodes (ligne de commande et studio Android). Je reçois la même clé de hachage de version et cela fonctionne si je mets minifyEnabled faux dans la version de construction.Connectez-vous avec google pour android ne fonctionne pas dans la version apk après minifyEnabled vrai

Si je mets minifyEnabled à true pour obscurcir les fichiers, la connexion google ne fonctionne pas.

ici est mon fichier proguard

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontpreverify 
-verbose 
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 

# -keep public class * extends android.app.Activity 
# -keep public class * extends android.app.Application 
# -keep public class * extends android.app.Service 
# -keep public class * extends android.content.BroadcastReceiver 
# -keep public class * extends android.content.ContentProvider 
# -keep public class * extends android.app.backup.BackupAgentHelper 
# -keep public class * extends android.preference.Preference 
# -keep public class com.android.vending.licensing.ILicensingService 

-keepclasseswithmembernames class * { 
    native <methods>; 
} 

-keepclasseswithmembers class * { 
    public <init>(android.content.Context, android.util.AttributeSet); 
} 

-keepclasseswithmembers class * { 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
} 

-keepclassmembers class * extends android.app.Activity { 
    public void *(android.view.View); 
} 

-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 

-keep class * implements android.os.Parcelable { 
    public static final android.os.Parcelable$Creator *; 
} 

-keep class * extends java.util.ListResourceBundle { 
    protected Object[][] getContents(); 
} 

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { 
    public static final *** NULL; 
} 

-keepnames @com.google.android.gms.common.annotation.KeepName class * 

-keepclassmembernames class * 
{ 
    @com.google.android.gms.common.annotation.KeepName *; 
} 

-keepnames class * implements android.os.Parcelable { 
    public static final ** CREATOR; 
} 

-keep class com.google.android.gms.common.GooglePlayServicesUtil {*;} 

-dontwarn com.google.android.gms.** 
-keepattributes SourceFile,LineNumberTable 

-adaptresourcefilenames 

-adaptresourcefilecontents 

-keepdirectories 

#-keepclassmembers class * { 
# public void *(android.view.View); 
#} 

# If your project uses WebView with JS, uncomment the following 
# and specify the fully qualified class name to the JavaScript interface 
# class: 
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 
# public *; 
#} 
-keep public class com.google.android.gms.ads.** { 
    public *; 
} 

-keep public class com.google.ads.** { 
    public *; 
} 

-dontwarn java.lang.invoke.* 
-dontwarn **$$Lambda$* 

# Platform calls Class.forName on types which do not exist on Android to determine platform. 
-dontnote retrofit2.Platform 
# Platform used when running on Java 8 VMs. Will not be used at runtime. 
-dontwarn retrofit2.Platform$Java8 
# Retain generic type information for use by reflection by converters and adapters. 
-keepattributes Signature 
# Retain declared checked exceptions for use by a Proxy instance. 
-keepattributes Exceptions 

-dontwarn org.xmlpull.v1.** 
-dontwarn okhttp3.** 
-keep class okhttp3.** { *; } 
-dontwarn okio.** 
-dontwarn javax.annotation.Nullable 
-dontwarn javax.annotation.ParametersAreNonnullByDefault 
-dontwarn javax.annotation.** 

-keepclassmembers class * { 
    @com.google.api.client.util.Key <fields>; 
} 

-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault 
-keep class com.google.** {*;} 

-keep class com.google.android.gms.** { *; } 
-dontwarn com.google.android.gms.** 

-keep class * extends java.util.ListResourceBundle { 
    protected Object[][] getContents(); 
} 

-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable { 
    public static final *** NULL; 
} 

-keepnames @com.google.android.gms.common.annotation.KeepName class * 
-keepclassmembernames class * { 
    @com.google.android.gms.common.annotation.KeepName *; 
} 

-keepnames class * implements android.os.Parcelable { 
    public static final ** CREATOR; 
} 

Toute aide est vraiment apprécié, a passé toute la journée sur cette question !!

+0

Définir « ne fonctionne pas ». des accidents? si c'est le cas, après le journal de l'accident – Kuffs

+0

Il ne plante pas, je ne suis pas en mesure de me connecter avec google. – Krishan

+0

Pourquoi -1, j'ai essayé toutes les façons que les gens ont suggéré dans d'autres questions, mon problème est différent. Si vous connaissez la réponse, veuillez fournir un lien. – Krishan

Répondre

0

Après 2 jours de travail, je l'ai résolu. Le problème est avec les classes de modernisation et de modèle.

Nous ne devons pas permettre de renommer les classes du modèle ainsi gardé

-dontwarn okio.** 
-dontwarn java.lang.invoke.* 
-dontwarn retrofit2.Platform$Java8 
-keep class retrofit.** { *; } 
-keep class retrofit2.** { *; } 
-keepattributes Signature 
-keepattributes Exceptions 
-keepclasseswithmembers class * { 
    @retrofit.http.* <methods>; 
} 
-keepclasseswithmembers interface * { 
    @retrofit.http.* <methods>; 
} 
-keepclasseswithmembers interface * { 
    @retrofit2.* <methods>; 
} 

-keep class com.google.gson.** { *; } 
-keep class com.google.inject.** { *; } 
-keep class javax.inject.** { *; } 
-keep class com.yourproject.YourClass** 
-keepclassmembers class com.yourproject.YourClass** { 
    *; 
}