Soru Gradle Yapı Hatası


Projem hata ayıklama modunu iyi derler ve yürütür, ancak imzalı bir apk oluşturmaya çalıştığımda hatalar ortaya çıkar. Bu mesaj günlüğünde görünür:

: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

Yapım araçlarını güncelleyerek, en son sınıf sürümünü kullanarak, tüm bağımlılıkları kontrol ederek ve hatayı hala göstererek, bunu düzeltmenin her olası yolunu denedim.

Hata ayıklama modunda hata oluşmadığından v4 destek kitaplığının projede bulunduğundan eminim.


28
2018-06-08 09:31


Menşei




Cevaplar:


Ayrıca 23 (Android Libraries, SDK vb.) İle ilgili olan herşeyi geliştirirken de bu sorunu yaşadım.

Bu proguard konfigürasyonu benim için düzeltdi:

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

Kaynak


33
2017-08-30 14:19



Teşekkür ederim, sen beni kurtardın :) - Michal
İyi bulmak. Bu oydu. - justadev
Benim için çok çalıştı! arama 3 saat sonra! Çok teşekkürler efendim!! - Roon13
Bunu nereye ekleyebilirim? - Ahmed
Bu, insanların voleybol kullandığını varsayıyor. - Igor Ganapolsky


Çıktığında getDefaultProguardFile('proguard-android.txt') proguard dosyalarında satır ve sadece kullanıyordu proguard-rules.pro


9
2018-06-11 06:37



Bu çizgiye sahibim ve hala bana oluyor .. - dangalg
Bende aynı problem vardı. Temizleme, temizleme önbellekleri çözmedi. Yapı günlüğüne daha yüksek baktığımda, proguardın bazı uyarılar verdiğini fark ettim. Muhtemelen bazı kodları paylaşan 2 kütüphanem var (yinelenen sınıflar ..). Arızalı kütüphanelerden birini kaldırdım ve proguard sorunumu çözdüm -> proguard uyarıları / hataları için yapım çıktınıza bakın - Lakedaemon
@dangalg ödeme benim cevabım - Niklas
Yani tüm eşlerde proguard kullanmıyorsunuz. size apk derlemeyi deneyin ve proje dosyalarını tam olarak aldığınızı görün - Nativ


bu iki satırı progaurd olarak ekledi

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

ve çalışıyor..

Projede kullanılan kütüphane ile ilgilidir.


4
2017-08-31 22:35





Varsayılan ProGuard dosyasının zaten destek kütüphanesi uyarılarını görmezden gelmesi için bir kuralı vardır. Eğer sahip değilseniz, dosyanıza ekleyebilirsiniz.

-dontwarn android.support.**

ama varsayılanı eklemek daha iyi olurdu. Görmek Proguard yapılandırması @ Android Geliştiricileri


1
2018-06-08 09:44



Bu sadece uyarıları kaldırmamı sağlıyor. Ama bu hata hala devam ediyor, Error:Execution failed for task ':app:packageRelease'. > Unable to compute hash of /home/kombo/RAL/Mpasho/app/build/intermediates/classes-proguard/release/classes.jar - Alex Kombo
Bu sorunu çözen var mı? - nous
Aynı problem ... çözüm yok. - Brill Pappin
Bu çok sinir bozucu, neredeyse her şeyi denedim ve bunu düzeltemiyorum: $ - Diego Palomar
Aynı problem, henüz çözüm yok - Ahmed


Bu ayrıca, .jar dosyalarının içerdiği hatalar / uyarılar nedeniyle de olabilir. Proguard uyarıları / hataları için yapı çıkışını kontrol edin.

Opencsv jar dosyasıyla ilgili sorun yaşadım. Yukarıdaki yorumda Lakedaemon tarafından ipucu bana yardımcı oldu ve çözüldü.


1
2017-09-09 09:43





Uygulamanızı build.gradle düşünüyorum buildTypes > release > minifyEnabled is true

Bu, bu hata iletisini almanıza neden olur.

Bu hata mesajından kaçın, ayarlandı buildTypes > release > minifyEnabled is false


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

0
2017-10-27 22:55



Bunu yaptığımda. Proguard hiçbir şey yapmaz. Tüm kodumu çözebilirim .... - Roel
tools.android.com/tech-docs/new-build-system/resource-shrinking - telcom
Teşekkürler! Sen benim günümü kurtardın - Bolein95
Bu, pro-guard etkinleştirilmiş bir çözüm değil - Ivan Leong


Bakmaya çalışın bütün hata mesajı. Bir kitaplığı iki kez eklediğiniz bilgileri içerebilir. Bu benim durumumda sorun oldu ve çoğaltılmış olanları çıkardıktan sonra giderildi.


0
2017-12-01 13:33