Android 错误Proguard不支持的类版本号
当我试图用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
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。