Ошибка: выполнение выполнено для задачи ': app: packageRelease'. > Невозможно вычислить хэш /../AndroidStudioProjects/../classes.jar

Я пытаюсь сделать сборку «release» на Android-приложении, и я продолжаю получать эту ошибку:

Невозможно вычислить хэш /../AndroidStudioProjects/../classes.jar

И тогда, когда я заглядываю в этот каталог для «classes.jar», файла там нет. Должен ли я сам создать этот файл с заданием градиента?

Здесь что-то происходит с proguard, но он не дает много полезной информации, кроме «Невозможно вычислить хэш …»

Вот мой файл gradle.build:

apply plugin: 'com.android.application' apply plugin: 'com.google.gms.google-services' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example" minSdkVersion 11 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { debug { buildConfigField "String", "SERVER_URL", '"http://10.0.2.2:3000"' } release { buildConfigField "String", "SERVER_URL", '"https://example.com"' minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debugRelease { buildConfigField "String", "SERVER_URL", '"https://example.com"' debuggable true jniDebuggable false renderscriptDebuggable false minifyEnabled false zipAlignEnabled true } } productFlavors { } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.1' compile 'com.android.support:recyclerview-v7:22.1.1' compile 'com.android.support:cardview-v7:22.1.1' compile 'com.google.android.gms:play-services-gcm:7.5.0' } 

Если кто-то может помочь мне отладить эту проблему, это будет здорово.

Solutions Collecting From Web of "Ошибка: выполнение выполнено для задачи ': app: packageRelease'. > Невозможно вычислить хэш /../AndroidStudioProjects/../classes.jar"

Все текущие ответы на этот вопрос просто дают правила Proguard, которые сработали для них, каждое исправление будет другим. Прежде всего, подтвердите, что это проблема Proguard, проверяя, что каталог-proguard находится где-то в сообщении об ошибке, что-то вроде этого: Unable to compute hash of /Users/Documents/projectX/app/build/intermediates/classes-proguard/release/classes.jar

Это означает, что это вызвано более ранней ошибкой Proguard, поэтому вам нужно прокрутить страницу в окне «Сообщения» или «Консоль Gradle» и проверить, какие предупреждения или ошибки вы получаете. Как пример, в моем текущем проекте библиотека Square Picasso вызывает ошибку: Warning: com.squareup.picasso.OkHttpDownloader: can't find referenced class com.squareup.okhttp.OkHttpClient . Я просто добавил -dontwarn com.squareup.okhttp.** чтобы игнорировать предупреждения, и приложение все еще работало нормально.

Многие ошибки Proguard будут предупреждениями о каком-то классе, поэтому просто добавление -dontwarn для любого класса, вызывающего его в вашем проекте, часто работает.

Я знаю, что способ StackOverflow – это просто сообщение об ошибке Google, копирование и вставка верхнего ответа и надежды на лучшее, но здесь вы должны это понять и выяснить правила proguard для вас!

Для меня следующие 2 строки внутри proguard.cfg помогли:

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

Я понял проблему:

Откройте proguard-rules.pro для своего проекта и добавьте его в proguard-rules.pro :

 -dontwarn java.nio.file.Files -dontwarn java.nio.file.Path -dontwarn java.nio.file.OpenOption -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement 

В основном, как я решил это, я попытался запустить свое приложение в режиме «выпуска» и получил кучу ошибок, подобных этому парню: https://github.com/square/okio/issues/144

Я в значительной степени следовал тому, что он сказал, и исправил это.

Надеюсь, это поможет другим в создании своих APK!

Я знаю, что здесь уже есть ответ, но моя ситуация была немного иной, и я хотел поделиться ею.

Для меня файл proguard моего проекта, а именно proguard-rules.pro , был каким-то образом переименован в proguard-android.txt .

proguard-android.txt зарезервирован для правил Android proguard по умолчанию, поэтому, по сути, я переопределял файл proguard от Android, который вызывал хаос, и я бы получил Unable для вычисления хеш-сообщения .

Как только я изменил имя файла в своем проекте с proguard-android.txt на proguard-rules.pro я смог заставить все работать.

Я знаю, что это старый вопрос, но, возможно, этот ответ работает на кого-то. Я добавил -dontwarn butterknife.** для proguard, затем град строит правильно.

Отключение параметра minifyEnabled из моего файла gradle исправило ошибку в моей сборке.

build.gradle

 buildTypes { release { // DISABLE OPTION //minifyEnabled true proguardFiles 'proguard.cfg' } }