ProGuardは多くの警告で停止します:
警告:クラスまたはインターフェースへの未解決の参照が1221件ありました。不足しているライブラリjarを追加するか、それらのバージョンを更新する必要がある場合があります。クラスがなくてもコードが正常に機能する場合は、 '-dontwarn'オプションを使用して警告を抑制できます。 ( http://proguard.sourceforge.net/manual/troubleshooting 。html#unresolvedclass)
警告:プログラムクラスに応じて、37のライブラリクラスのインスタンスがありました。ライブラリクラスは変更されないまま、プログラムクラスが処理されるため、このような依存関係を回避する必要があります。 ( http://proguard.sourceforge.net/manual/troubleshooting 。html#dependency)警告:プログラムクラスメンバーに対する7つの未解決の参照がありました。入力クラスに一貫性がないようです。コードを再コンパイルする必要がある場合があります。 ( http://proguard.sourceforge.net/manual/troubleshooting 。html#unresolvedprogramclassmember)
エラー:上記の警告を最初に修正してください。
しかし、私のjarファイルは正しく実行されます。私はプロガードの設定に精通していません。なにか提案を?
私はあなたの質問の非常に関連性の高い部分(すなわち答え)を引用します。
Ifコードが正常に機能する場合不足しているクラスがなくても、 '-dontwarn'オプションを使用して警告を抑制します
したがって、-dontwarn
私のjarが正しく実行されるため。
文書化(質問ごと) ここ オプションもあります-libraryjars
追加したい外部ライブラリがある場合に使用できます。
上記のような警告があります
Warning: class A: can't find referenced class B
-keep class com.package.** { *; }
を使用して難読化されないようにするか、これが問題でないことが確実な場合は-dontwarn com.package.**
を使用できます。
ここで行う最善の方法は、ライブラリをプログラム構成ファイルに追加することです。その上部、入力と出力のjarパスの直後に、使用するライブラリjarごとに次のような行を追加します。
-libraryjars 'path/to/jar/file.jar'
これは、指定されたjarから不足しているクラスをロードするようにproguardに指示します。