проблема proguard в Gradle

Я пытаюсь создать свое приложение. Я получаю следующую ошибку: Все это время приложение использовалось для правильной генерации сборки.

После того, как я обновил свою compileSdkVersion и сборку до 23, GMS до 8.1, AsyncHttpclient до 1.4.9. Я получаю следующую ошибку.

Не знаю, что делать:

  Warning:com.google.android.gms.internal.zzac: can't find referenced class android.net.http.AndroidHttpClient
    Warning:com.google.android.gms.internal.zzw: can't find referenced method 'void addHeader(java.lang.String,java.lang.String)' in program class com.google.android.gms.internal.zzw$zza
    Warning:com.google.android.gms.internal.zzw$zza: can't find referenced method 'void setURI(java.net.URI)' in program class com.google.android.gms.internal.zzw$zza
    Warning:there were 2 unresolved references to classes or interfaces.
             You may need to add missing library jars or update their versions.
             If your code works fine without the missing classes, you can suppress
             the warnings with '-dontwarn' options.
             (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
    Warning:there were 2 unresolved references to program class members.
             Your input classes appear to be inconsistent.
             You may need to recompile the code.
             (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedprogramclassmember)
    :app:proguardRelease FAILED
    Error:Execution failed for task ':app:proguardRelease'.
    > java.io.IOException: Please correct the above warnings first.

Что здесь может быть не так?


person user5287166    schedule 30.10.2015    source источник
comment
Возможно, вам потребуется просмотреть свой proguard и добавить любые новые команды для библиотеки AsyncHttpclient.   -  person Sufian    schedule 30.10.2015
comment
Вы добавили необходимую команду dontwarn в proguard?   -  person Shvet    schedule 30.10.2015
comment
@Shvet: Не уверен, о чем не предупреждать? Как я уже говорил, это работает. Это произойдет после обновления. Откуда мне знать, что я должен добавить?   -  person user5287166    schedule 30.10.2015
comment
@user5287166 user5287166 ты сделал minifyEnabled false истинным? когда вы обновили град?   -  person Shvet    schedule 30.10.2015
comment
Разве это не похоже на этот вопрос?   -  person Sufian    schedule 30.10.2015
comment
@Dhaval Я изменил minifyEnabled false на true. любое предложение?   -  person BinqiangSun    schedule 24.03.2016
comment
@BinqiangSun это означает, что вы включаете proguard, вы должны проверить все необходимые имена классов в dontwarn и сохранить внутри proguard.   -  person Shvet    schedule 25.03.2016


Ответы (1)


Если вы еще не добавили команду в progruard, добавьте.

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

Если вы используете карту, вам следует проверить сайт разработчика. В нем уже есть прогард.

Для карты вам может потребоваться добавить код ниже. если вы не добавили.

# The Maps API uses custom Parcelables.
# Use this rule (which is slightly broader than the standard recommended one)
# to avoid obfuscating them.
-keepclassmembers class * implements android.os.Parcelable {
    static *** CREATOR;
}

# The Maps API uses serialization.
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    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();
}

-dontwarn com.google.android.maps.GeoPoint
-dontwarn com.google.android.maps.MapActivity
-dontwarn com.google.android.maps.MapView
-dontwarn com.google.android.maps.MapController
-dontwarn com.google.android.maps.Overlay
-dontwarn com.google.android.gms.maps.model.*
person Shvet    schedule 30.10.2015