Не удается сгенерировать подписанный APk

  1. Это мой файл Proguard:
 -dontoptimize
 -dontusemixedcaseclassnames
 -dontskipnonpubliclibraryclasses
 -dontskipnonpubliclibraryclassmembers
 -dontpreverify
 -verbose
 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
 -dump class_files.txt
 -printseeds seeds.txt
 -printusage unused.txt
 -printmapping mapping.txt
 -renamesourcefileattribute SourceFile
 -keepattributes SourceFile,LineNumberTable
 -keepattributes *Annotation*,EnclosingMethod
 -keepattributes Signature
 -ignorewarnings


 -keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
 -keepclassmembers class * {
   @com.google.api.client.util.Key <fields>;
 }
 -dontwarn sun.misc.Unsafe
 -dontwarn com.google.common.collect.MinMaxPriorityQueue
 -dontwarn com.google.api.client.extensions.android.**
 -dontwarn com.google.api.client.googleapis.extensions.android.**

 -keep @interface com.google.gson.annotations.SerializedName
 -keepattributes *Annotation*

 -keep class com.google.inject.** { *; }
 -keep class javax.inject.** { *; }
 -keep class javax.annotation.** { *; }

 -keep public class Pokoto.** {
   public void set*(***);
   public *** get*();
 }

 -keep class com.firebase.** { *; }
 -dontwarn com.fasterxml.**


 # ---- PRESAGE - start

 -dontnote io.presage.**
 -dontwarn shared_presage.**
 -dontwarn org.codehaus.**

 -keepattributes Signature

 -keep class shared_presage.** { *; }
 -keep class io.presage.** { *; }
 -keepclassmembers class io.presage.** {
  *;
 }

 -keepattributes *Annotation*
 -keepattributes JavascriptInterface
 -keepclassmembers class * {
     @android.webkit.JavascriptInterface <methods>;
 }

 # ---- OKHTTP
 -dontnote okhttp3.**
 -dontnote okio.**
 -dontwarn okhttp3.**
 -dontwarn okio.**

 -dontnote sun.misc.Unsafe
 -dontnote android.net.http.*

 -dontnote org.apache.commons.codec.**
 -dontnote org.apache.http.**

 -dontwarn org.apache.commons.collections.BeanMap
 -dontwarn java.beans.**

 # ---- GOOGLE
 -dontnote com.google.gson.**
 -dontnote com.google.android.gms.ads.**
 -dontnote com.google.android.**
 -dontnote com.google.ads.**

 -keepclassmembers class * implements java.io.Serializable {
     static final long serialVersionUID;
     private static final java.io.ObjectStreamField[] serialPersistentFields;
     private void writeObject(java.io.ObjectOutputStream);
     private void readObject(java.io.ObjectInputStream);
     java.lang.Object writeReplace();
     java.lang.Object readResolve();
 }

 # ---- PRESAGE - end

 # ---- amazon

 -dontwarn com.amazon.**

 -keep class com.amazon.** {*;}

 -keepattributes *Annotation*

 -keep public class com.google.android.youtube.player.** { *; }

 #sqlcipher
 -keep class net.sqlcipher.** { *; }
 -keep class net.sqlcipher.database.* { *; }

 ##---------------Begin:  configuration for Fabric  ----------
 -keep class com.crashlytics.** { *; }
 -dontwarn com.crashlytics.**

 ##---------------End: configuration for Fabric  ----------


 ##---------------Begin: mopub configuration  ----------
 -keepclassmembers class com.mopub.** { public *; }
 -keep public class com.mopub.**
 -keep public class android.webkit.JavascriptInterface {}
 -keep class * extends com.mopub.mobileads.CustomEventBanner {}
 -keepclassmembers class com.mopub.mobileads.CustomEventBannerAdapter {!private !public !protected *;}
 -keep class * extends com.mopub.mobileads.CustomEventInterstitial {}
 -keep class * extends com.mopub.mobileads.CustomEventNative {}
 -keep class com.google.android.gms.common.GooglePlayServicesUtil {*;}
 -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient {*;}
 -keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info {*;}
 ##---------------End: mopub configuration   ----------

 ##---------------Begin: proguard configuration for GLIDER  ----------
 -keep public class * implements com.bumptech.glide.module.GlideModule
 -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
   **[] $VALUES;
   public *;
 }
 ##---------------End: proguard configuration for GLIDE  ----------

 ##---------------Begin: proguard configuration for okHTTP  ----------
 -keepattributes Signature
 -keepattributes Annotation
 -keep class okhttp3.** { *; }
 -keep interface okhttp3.** { *; }
 -dontwarn okhttp3.
 -dontwarn okio.**
 ##---------------End: proguard configuration for okHTTP  ----------


 ##---------------Begin: proguard configuration for Gson  ----------
 # Gson uses generic type information stored in a class file when working with fields. Proguard
 # removes such information by default, so configure it to keep all of it.
 -keepattributes Signature

 # For using GSON @Expose annotation
 -keepattributes *Annotation*

 # Gson specific classes
 -keep class sun.misc.Unsafe { *; }
 -keep class com.google.gson.stream.** { *; }

 # Application classes that will be serialized/deserialized over Gson
 -keep class com.google.gson.examples.android.model.** { *; }

 # Prevent proguard from stripping interface information from TypeAdapterFactory,
 # JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
 -keep class * implements com.google.gson.TypeAdapterFactory
 -keep class * implements com.google.gson.JsonSerializer
 -keep class * implements com.google.gson.JsonDeserializer
 # Add the gson class
 -keep public class com.google.gson

 ##---------------End: proguard configuration for Gson  ----------


 ## guava
 -keep class com.google.common.io.Resources {
     public static <methods>;
 }
 -keep class com.google.common.collect.Lists {
     public static ** reverse(**);
 }
 -keep class com.google.common.base.Charsets {
     public static <fields>;
 }

 -keep class com.google.common.base.Joiner {
     public static Joiner on(String);
     public ** join(...);
 }

 -keep class com.google.common.collect.MapMakerInternalMap$ReferenceEntry
 -keep class com.google.common.cache.LocalCache$ReferenceEntry

 -dontwarn sun.misc.Unsafe
 -dontwarn javax.annotation.**

 -keep class com.google.j2objc.annotations.** { *; }
 -dontwarn   com.google.j2objc.annotations.**
 -keep class java.lang.ClassValue { *; }
 -dontwarn   java.lang.ClassValue
 -keep class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement { *; }
 -dontwarn   org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

 # Guava 20.0
 -dontwarn com.google.errorprone.annotations.CanIgnoreReturnValue
 -dontwarn com.google.errorprone.annotations.concurrent.LazyInit
 -dontwarn com.google.errorprone.annotations.ForOverride

 ## end guava

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

 # Keep SafeParcelable value, needed for reflection. This is required to support backwards
 # compatibility of some classes.
 -keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
     public static final *** NULL;
 }

 # Keep the names of classes/members we need for client functionality.
 -keepnames @com.google.android.gms.common.annotation.KeepName class *
 -keepclassmembernames class * {
     @com.google.android.gms.common.annotation.KeepName *;
 }

 # Needed for Parcelable/SafeParcelable Creators to not get stripped
 -keepnames class * implements android.os.Parcelable {
     public static final ** CREATOR;
 }

 -dontwarn javax.annotation.**
 -dontwarn javax.inject.**
 -dontwarn sun.misc.Unsafe
 -keep class com.google.android.gms.** { *; }
 -dontwarn com.google.android.gms.**
 -keep class android.webkit.WebSettings
 -dontwarn android.webkit.WebSettings
 -keep class android.content.pm.PackageInstaller
 -keep class android.content.pm.PackageInstaller$SessionInfo
 -keep class android.content.pm.PackageManager
 -dontwarn android.content.pm.PackageInstaller
 -dontwarn android.content.pm.PackageInstaller$SessionInfo
 -dontwarn android.content.pm.PackageManager

 # AppCompat
 -keep class android.support.v7.app.** { *; }
 -keep class android.support.v4.app.** { *; }
 -keep interface android.support.v4.app.** { *; }

 -keep class com.facebook.** {
    *;
 }

 -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 * extends android.view.View
 -keep public class * extends android.support.v4.**
 -keep public class * extends android.app.Fragment

 -keep public class custom.components.**

 #Maintain java native methods
 -keepclasseswithmembernames class * {
     native <methods>;
 }

 -assumenosideeffects class android.util.Log {
     public static *** d(...);
     public static *** v(...);
 }

 -keep public class * extends android.view.View {
 public <init>(android.content.Context);
 public <init>(android.content.Context, android.util.AttributeSet);
 public <init>(android.content.Context, android.util.AttributeSet, int);
 public void set*(...);
 }

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

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

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

 # Also keep - Enumerations. Keep the special static
 # methods that are required in enumeration classes.
 -keepclassmembers enum  * {
     public static **[] values();
     public static ** valueOf(java.lang.String);
 }

 #To keep parcelable classes (to serialize - deserialize objects to sent through Intents)
 -keep class * implements android.os.Parcelable {
   public static final android.os.Parcelable$Creator *;
 }

 #Keep the R
 -keepclassmembers class **.R$* {
     public static <fields>;
 }

 -keep public class * {
     public protected *;
 }
  1. И это ошибка, которую я получаю:

    Предупреждение: исключение при обработке задачи java.io.IOException: невозможно записать [C:\Users\Anish\pokoto\app\build\intermediates\transforms\proguard\release\jars\3\1f\main.jar] (может не читается [C:\Users\Anish.android\build-cache\9a4d2c08e132f2da417ab6ffc3ca37865ea16fd6\output\jars\classes.jar(;;;;;;**.class)] (Дубликат zip-записи [classes.jar:com/ google/common/base/FinalizableReference.class])) Ошибка: не удалось выполнить задачу ':app:transformClassesAndResourcesWithProguardForRelease'.

    Задание не выполнено, подробности см. в журналах.

    1. I every time i try to compile compile 'com.google.api-client:google-api-client:1.22.0' it give me the error

person j.anish    schedule 12.06.2017    source источник


Ответы (1)


у меня похожая ошибка. Обновлено 15 июня 2017 г. Обновите репозиторий Google до версии 54 и используйте последнюю версию (11.0.1) play-service вместо 11.0.0.

compile 'com.google.android.gms:play-services-identity:11.0.1'
compile 'com.google.android.gms:play-services-gcm:11.0.1'
compile 'com.google.android.gms:play-services-location:11.0.1'
compile 'com.google.android.gms:play-services-analytics:11.0.1'

Затем подписанный APK будет сгенерирован без каких-либо проблем.

Примечание. Нет необходимости комментировать, так как это нужно для firebase

apply plugin: 'com.google.gms.google-services'
person Song    schedule 13.06.2017
comment
Решение этой проблемы можно найти здесь stackoverflow.com/questions/44456533/. Я успешно протестировал его, и теперь я использую сервисы guava и play V11.0.0. - person Nicolás Arias; 14.06.2017
comment
Наш проект с использованием firebase и firebase - person Song; 14.06.2017
comment
Обновите, Google только что выпустил 11.0.1 и исправил эту проблему - person Song; 15.06.2017
comment
Извините за очень поздний ответ, но спасибо, ребята. - person j.anish; 13.07.2017