Не удалось собрать APK из-за ошибки proguard

Когда я устанавливаю для minifyEnabled значение true в build.gradle, я получаю следующую ошибку при попытке собрать подписанный APK:

Error:Execution failed for task ':app:packageRelease'.
> Unable to compute hash of .../app/build/intermediates/classes-proguard/release/classes.jar

Я не уверен, почему это происходит. Любая помощь приветствуется.


person vikzilla    schedule 07.11.2015    source источник
comment
Посмотрите выходные данные сборки на наличие более ранних предупреждений proguard.   -  person laalto    schedule 07.11.2015
comment
Есть много предупреждений о том, что не удается найти ссылочный класс, связанный с моими сторонними библиотеками (такими как Butterknife, Parse и OkHttp)   -  person vikzilla    schedule 07.11.2015
comment
Добавьте -dontwarn правил для этих пакетов.   -  person laalto    schedule 07.11.2015
comment
проверьте этот поток переполнения стека   -  person pRaNaY    schedule 07.11.2015
comment
@laalto Мне удалось подавить предупреждения, используя -dontwarn и установив последнюю версию Android Build Tools SDK, однако я получаю ту же ошибку при попытке собрать этот подписанный APK   -  person vikzilla    schedule 07.11.2015


Ответы (2)


Вы добавляете правила proguard для сторонних библиотек, верно?

Например, для ButterKnife вы должны добавить это в файл proguard:

-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }

-keepclasseswithmembernames class * {
    @butterknife.* <fields>;
}

-keepclasseswithmembernames class * {
    @butterknife.* <methods>;
}
person Ozgur    schedule 07.11.2015
comment
Я в настоящее время нет. Новичок в Android, поэтому мне интересно, нужно ли каждой сторонней библиотеке правило proguard для выпускных сборок? Например, я использую mopub, но не видел, чтобы документы много говорили о proguard/установке minifyEnabled = true - person vikzilla; 07.11.2015
comment
Некоторым библиотекам требуется proguard config. В Mopub тоже есть: github.com/mopub/ mopub-android-sdk/blob/master/mopub-sample/ - person Ozgur; 07.11.2015
comment
Даже когда я добавляю все это, я получаю ту же ошибку, к сожалению - person vikzilla; 07.11.2015

Решил это, добавив в мой build.gradle следующее:

android {
    useLibrary 'org.apache.http.legacy'
}

Подробнее здесь: https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apache-http-client

person vikzilla    schedule 08.11.2015