错误Proguard不支持的类版本号

当我尝试用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,并检查了项目configuration文件,但总是相同的错误。 我正在使用最新版本的Intellij IDEA

Solutions Collecting From Web of "错误Proguard不支持的类版本号"

似乎Proguard实际上不支持Java 8。 您必须使用JDK版本7。

编辑-1

我已经重新编译Proguard来支持JDK 8类,不支持Java 8的新function,但是如果你的代码不使用Java 8,新的语法(例如Lambda Expression)应该没问题。 testing一些Android项目。

要使用replace文件proguard.jar中

 android-sdk\tools\proguard\ 

与这个存档的内容

编辑-2

最近已经发布了应该解决这个问题的官方Proguard 5。 你可以从这里下载这个

ProGuard 5.0(2014年8月发布)支持Java 8。

ProGuard尚未更新以支持Java 8。

ProGuard已经提出了一个问题 。

Eric Lafortune(ProGuard开发人员)在2013年10月提到

我现在很忙,所以现实上我不能在短期内完成这个,对不起。 尽pipe如此,我还是密切留意事态的发展。

他还说

如果您更改或禁用ClassUtil#checkVersionNumbers,则ProGuard可能适用于仅使用旧function的类文件。

github上有一个pyx4me ProGuard Maven插件的inheritance者,支持ProGuard 5.2,因此支持Java 8:

https://github.com/wvengen/proguard-maven-plugin

http://wvengen.github.io/proguard-maven-plugin/

欢呼声,Ekho