アプリをProguardで難読化しようとすると、常にこのエラーが発生します
Error:ProGuard: [MyApp] Java.io.IOException: Can't read [C:\Program Files\Java\jdk1.8.0\jre\lib\rt.jar] (Can't process class [com/Oracle/net/Sdp$1.class] (Unsupported class version number [52.0] (maximum 51.0, Java 1.7)))
私はすでにProguardを更新し、project-configファイルをチェックしましたが、常に同じエラーです。 Intellij IDEAの最新バージョンを使用しています
Proguardは実際にはJava 8をサポートしていないようです。JDKバージョン7を使用する必要があります。
編集-1
JDK 8クラスをサポートするようにProguardを再コンパイルしましたが、Java 8つの新機能をサポートしていませんが、コードでJava 8の新しい構文(eg Lambda Expression)は問題なく動作するはずです。いくつかのAndroidプロジェクトでテスト済み。
使用するには、次の場所にあるファイルproguard.jarを置き換えます。
Android-sdk\tools\proguard\
THIS ARCHIVE の内容で
編集-2
この問題に対処する必要がある公式のProguard 5が最近リリースされました。これは [〜#〜]こちら[〜#〜] からダウンロードできます。
ProGuard 5.0(2014年8月にリリース)はJava 8をサポートします。
ProGuardは、Java 8をサポートするようにまだ更新されていません。
Eric Lafortune(ProGuard開発者)が2013年10月に書き戻しました
今は忙しいので、現実的には短期間で完了できません。ごめんなさい。しかし、私は進展に目を光らせています。
彼はまた言った
ProGuardは、ClassUtil#checkVersionNumbersを変更または無効にした場合にのみ、古い機能を使用するクラスファイルで機能する可能性があります。
GithubにはProGuard5.2をサポートするpyx4meProGuard Mavenプラグインの後継があります。したがって、Java 8サポート:
https://github.com/wvengen/proguard-maven-plugin
http://wvengen.github.io/proguard-maven-plugin/
乾杯、Ekho