错误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

  • Gradle插件v0.13.1后重复的Zip条目
  • 如何混淆只有几个类或一个包?
  • * Proguard中的vs vs vs vs ***?
  • Androiddevise支持库proguard规则
  • dagger android支持proguard规则
  • 使用proguard删除日志通话
  • Proguard保持类名?
  • 使用proguard的Android混淆应用程序保持混淆图书馆jar子 - 是吗?
  • 似乎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