web-dev-qa-db-ja.com

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サポートライブラリがプロジェクトに存在することは間違いありません。

28
Alex Kombo

23(Androidライブラリ、SDKなど)に関連して構築されたすべてをアップグレードするときにも、この問題が発生しました。

このプロガード構成は私のためにそれを修正しました:

-dontwarn org.Apache.http.**
-dontwarn Android.net.http.AndroidHttpClient
-dontwarn com.google.Android.gms.**
-dontwarn com.Android.volley.toolbox.**

ソース

35
Niklas

プロガードファイルのgetDefaultProguardFile('proguard-Android.txt')行を省略し、proguard-rules.pro

9
Alex Kombo

デフォルトのProGuardファイルには、サポートライブラリの警告を無視するルールが既にあります。お持ちでない場合は、ファイルに追加できます

-dontwarn Android.support.**

しかし、デフォルトのものを追加する方が良いでしょう。 Proguard configuration @ Android Developers を参照してください

2
Salem

これは、含まれている.jarファイルに関連するエラー/警告が原因で発生する可能性もあります。プロガードの警告/エラーのビルド出力をチェックインします。

Opencsv jarファイルに関連する問題がありました。上記のコメントのLakedaemonによるヒントは、私とその解決に役立ちました。

1
Tejasvi Hegde

wholeエラーメッセージを調べてみてください。ライブラリを2回含めるという情報が含まれている場合があります。これは私の場合の問題であり、重複するインクルードを削除した後に修正されました。

0
Alex Newman

このコードをproguard-rules.proに追加してみてください:

-ignorewarnings 

それは私の問題を解決しました。

0
Yazdan