Android 错误Proguard不支持的类版本号

Android 错误Proguard不支持的类版本号,android,intellij-idea,proguard,Android,Intellij Idea,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

当我试图用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并检查了项目配置文件,但总是出现相同的错误。我使用的是Intellij IDEA的最新版本,似乎Proguard实际上不支持Java 8。您必须使用JDK版本7

编辑-1

我重新编译了Proguard以支持JDK 8类,不支持Java 8的新功能,但是如果您的代码不使用Java 8,那么新语法(例如Lambda表达式)应该可以正常工作。在一些android项目中进行了测试

要使用,请在中替换文件proguard.jar

android-sdk\tools\proguard\ 
内容为

编辑-2


最近发布了官方的Proguard 5,它应该解决这个问题。您可以从

下载,ProGuard尚未更新以支持Java 8

Eric Lafortune(ProGuard开发者)在2013年10月指出

我现在很忙,所以实际上我短期内无法完成,对不起。不过我一直在关注事态的发展

他还说

如果您更改或禁用ClassUtil#CheckVersionNumber,ProGuard可能只适用于使用旧功能的类文件


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

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

干杯,
Ekho

我刚刚尝试了这个,得到了
java.lang.IllegalArgumentException:Value不是参考值[proguard.evaluation.Value.InstructionOffsetValue]
@WonderCsabo您在
android sdk\tools\proguard\lib
中替换了proguard.jar吗?我用了一个月,没有任何问题。注意,我假设您替换的Proguard版本是从source forge下载的稳定的4.11版本,您使用的是官方的Oracle Java JDK 1.8I刚刚添加了整个Proguard文件夹,以避免版本不匹配感谢您的回答!我使用的是Android SDK打包的ProGuard版本,它是4.7。我将更新到4.11版本,然后再次尝试你的库。不幸的是,我仍然得到相同的错误。这是痕迹。我使用的是Windows 8.1。