Подтвердить что ты не робот

Gradle Ошибка сборки

Мой проект компилируется и отлично работает в режиме отладки, но когда я пытаюсь сгенерировать подписанный apk, возникают ошибки. Это отображается в журнале сообщений:

:app:proguardRelease
Warning:android.support.v4.app.DialogFragment: can't find referenced class android.support.v4.app.DialogFragment$DialogStyle
Warning:android.support.v4.app.FragmentTransaction: can't find referenced class android.support.v4.app.FragmentTransaction$Transit
Warning:android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$ResolvedLayoutDirectionMode
Warning:android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$LayoutDirectionMode
Warning:android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$LayerType
Warning:android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$AccessibilityLiveRegion
Warning:android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$ImportantForAccessibility
Warning:android.support.v4.view.ViewCompat: can't find referenced class android.support.v4.view.ViewCompat$OverScroll
Warning:android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$EdgeGravity
Warning:android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$LockMode
Warning:android.support.v4.widget.DrawerLayout: can't find referenced class android.support.v4.widget.DrawerLayout$State
Warning:there were 11 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)
Exception while processing task 
java.io.IOException: Please correct the above warnings first.
    at proguard.Initializer.execute(Initializer.java:473)
    at proguard.ProGuard.initialize(ProGuard.java:233)
    at proguard.ProGuard.execute(ProGuard.java:98)
    at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
    at com.android.build.gradle.tasks.AndroidProGuardTask.doMinification(AndroidProGuardTask.java:139)
    at com.android.build.gradle.tasks.AndroidProGuardTask$1.run(AndroidProGuardTask.java:115)
    at com.android.builder.tasks.Job.runTask(Job.java:48)
    at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)
    at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:227)
    at java.lang.Thread.run(Thread.java:745)
:app:dexRelease UP-TO-DATE
:app:crashlyticsStoreDeobsRelease
:app:crashlyticsUploadDeobsRelease
:app:validateExternalOverrideSigning
:app:packageRelease FAILED
Error:Execution failed for task ':app:packageRelease'.
> Unable to compute hash of /home/kombo/RAL/Mpasho/app/build/intermediates/classes-proguard/release/classes.jar

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

Я уверен, что библиотека поддержки v4 присутствует в проекте, так как ошибки не возникают в режиме отладки.

4b9b3361

Ответ 1

У меня также была эта проблема при обновлении всего, что было построено по 23 (Android-библиотеки, SDK и т.д.).

Эта конфигурация proguard исправила это для меня:

-dontwarn org.apache.http.**
-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**
-dontwarn com.android.volley.toolbox.**

Источник

Ответ 2

Оказывается, я пропустил строку getDefaultProguardFile('proguard-android.txt') в файлах proguard и просто использовал proguard-rules.pro

Ответ 3

добавили эти две строки в progaurd

-dontwarn android.net.http.AndroidHttpClient
-dontwarn com.google.android.gms.**

и он работает.

Это связано с библиотекой, используемой в проекте.

Ответ 4

У файла ProGuard по умолчанию уже есть правило игнорировать предупреждения библиотеки поддержки. Если у вас его нет, вы можете добавить в свой файл

-dontwarn android.support.**

но лучше добавить значение по умолчанию. См. Конфигурация Proguard @Разработчики Android

Ответ 5

Это также может произойти из-за ошибок/предупреждений, связанных с включенными файлами .jar Проверьте выход сборки для предупреждений/ошибок proguard.

У меня возникла проблема с файлом opencsv jar. Подсказка Lakedaemon в приведенном выше комментарии помогла мне и ее решению.

Ответ 6

Попробуйте найти во всем сообщении об ошибке. Он может содержать информацию о том, что вы включаете библиотеку дважды. Это была проблема в моем случае, и она была исправлена ​​после удаления дублированных включений.

Ответ 7

Попробуйте добавить этот код в ваш proguard-rules.pro:

-ignorewarnings 

Это решило мою проблему.

Ответ 8

Я думаю, что ваше приложение build.gradle buildTypes > release > minifyEnabled is true

Это приведет к появлению этого сообщения об ошибке.

Избегайте этого сообщения об ошибке, установите buildTypes > release > minifyEnabled is false


    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}