当前位置: 首页 > 知识库问答 >
问题:

错误Proguard不支持的类版本号

姬翰林
2023-03-14

当我试图用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的最新版本

共有3个答案

章誉
2023-03-14

ProGuard尚未更新以支持Java8。

针对ProGuard已经提出了一个问题。

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

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

他还说

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

左博学
2023-03-14

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

班展
2023-03-14

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

编辑-1

我已经重新编译了ProGuard来支持JDK 8类,不支持Java8个新功能,但是如果你的代码不使用Java8个新语法(例如:Lambda表达式)应该没有问题。测试了一些Android项目。

使用替换文件proguard。挤进

android-sdk\tools\proguard\ 

使用此存档的内容

编辑-2

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

 类似资料:
  • 我试图在我的Xamarin.Android项目中使用Proguard,但是编译失败,出现错误 Java.io.ioException:无法读取[/library/frameworks/xamarin.android.framork/versions/7.0.0-18/lib/xbuild-frameworks/monoandroid/v7.0/mono.android.jar](无法处理类[And

  • 我试图在所有节点都安装了Java1.7的集群上使用spark-submit运行java spark作业。 作业失败,返回java.lang.UnsupportedClassVersionError:com/WindLogics/DMF/Wether/MyClass:Unsupported Major.Minor版本51.0。 此外,当主机设置为Local时,作业也可以正常工作。如何进行调试和修复此

  • 我正在尝试运行一个颤振应用程序,在尝试时出现了这个错误,我所做的是我想在没有android studio的情况下运行颤振应用程序,所以我下载了android SDK和JDK 17,在我运行颤振医生后,它告诉我一切都很好,我尝试运行,它给了我这个错误: 所以我尝试了一个旧版本的JDK,它给了我另一个错误,所以我看到了使用JDK 17运行的第三个解决方案,那就是降级gradle中的gradle。属性,

  • 我在Mac OS X 10.9.2和sbt 0.13.3-SNAPSHOT(从源构建),Java8和sbt-proGuard 0.2.2插件。 sbt 0.13。三维快照 爪哇8 项目/插件。sbt 当我在sbt shell中运行时,它发生了以下异常: 为什么可能是错误的原因?

  • 尝试在安装了Java版本JDK1.7的远程机器上运行我使用maven和JDK1.8构建的spark应用程序。使用spark-submit命令: 获取以下异常:

  • 问题内容: 在IntelliJ中,当我尝试从构建菜单进行构建时,我收到此奇怪的错误消息:错误:java:不支持版本10 我不明白,因为在“项目结构”中设置了以下设置:项目SDK:9.0项目语言级别:SDK默认模块语言级别:项目默认(两个模块) 在我的pom.xml文件中,两个模块中都设置了这些属性: 我不知道为什么要尝试将JDK 10用于任何东西,但我仍然收到该消息。我很高兴使用JDK10,但是我