Android Studio:unsupported class file version 52.0报错

一、错误场景

在工作中使用了Mapbox的android版的SDK,之前跑demo没什么问题,但是嵌入到其他人代码后报如下错误:

二、类似错误及解决方案

查了半天,看了几个有用的帖子,网上有一个报错和我的错误类似,但是用那些方法解决不了我的问题,如下报错:

error : unsupported class file version 52.0 

Conversion to Dalvik format failed with error 1

这个报错出错原因:(这个是我摘录的,没有亲测,因为我也没遇到这种错误

1).可能是用jdk 1.8运行程序时,某些类无法解析。。(jdk编译和运行版本的问题)
2).Java 编译器 版本和Android sdk版本不匹配。

52.0  版本是 java 8编译出来的class文件版本号。
怀疑是你使用了某些库, 这些库是使用java 8编译的,而你机器上是java 7或以下版本。
(所以解决办法是:把你的编辑器 的jdk 版本降低就好了)

解决方案:

Window->Preferences->Java->Compiler, 将 "Compiler compliance level" 设置为 1.7

三、我的报错原因及解决方案

看了很多帖子,受了不少启发,才渐渐理解这个问题的原因,额,居然buildtoolsVersion版本和java编译器冲突,我之前的依赖包都是基于jdk7编译的,而后加入的mapbox的依赖包是用jdk8编译的,报错中的version52就是jdk8的意思,我跑demo的时候buildtoolsVersion是26.0.2,而同事使用的是buildtoolsVersion25.0.4,可见25版本构建工具是基于jdk7的,所以解析不了一些基于jdk8的文件。下面是Jdk8的官方说明摘录,说明了之前版本不能编译jdk8的文件。所以解决方案就是将buildtoolsVersion升级为26.0.2即可。

针对我的mapbox依赖包,改了这个错误后还有一个jar包冲突的问题,这个不详细说了,按照报错说明删除对应的包即可,这是因为mapbox依赖包与之前工程中module中包都包含了okttp的包。

The Oracle Compatibility Guide for Java 8 says (in part),

The class file version for Java SE 8 is 52.0 as per the JVM Specification. Version 52.0 class files produced by a Java SE 8 compiler cannot be used in earlier releases of Java SE.



四、总结

最后的解决方案虽然很简单,但是如果不弄清楚这个原理,还是一团乱麻,搞不清楚。这个问题也将近困扰我一天的时间,没搞出来时候像便秘一样难受,最好搞定了也有一泻千里的感觉。

额,当然需要总结的是:

1、后续还要多看书,巩固自己的编程基础,这是根本中的根本

2、遇到问题了,不能急吼吼的瞎搞,还是多找找相关的资料理清楚相关的原理,及时不一定很快清清楚楚,但是根据报错的信息,找相关的文章等等看、思考,肯定会有所收获

3、实在一时搞不定的,就暂时不搞了,不然越弄越头大,搞的心态都很崩溃,不如先干别的。之所以要这样做,是因为我发现很多次自己困扰很久的问题越搞越搞不出来,但是等头脑清醒时候居然很快就搞定了。这个原理估计就是一次性接触太多,思维太乱,放一段时间思维敏捷时候再来梳理一遍就清晰了

参考文章链接:

https://stackoverflow.com/questions/37902840/got-unsupported-class-file-version-52-0-after-including-a-module-to-a-project

https://blog.csdn.net/JeterPong/article/details/53943061

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当你在使用Android Studio时,如果出现"Unsupported class file major version 61"的错误,这通常是由于你的Java版本与Android Studio不兼容所导致的。 Android Studio要求使用特定版本的Java开发工具包(JDK)。在Android Studio 4.2及更高版本中,要求使用JDK 11。因此,你需要确保你的Java开发环境已经升级到JDK 11或更高版本。 以下是解决这个问题的步骤: 1. 首先,确认你的电脑上已经安装了JDK 11或更高版本。你可以在命令行中运行`java -version`来检查当前安装的Java版本。 2. 如果你没有安装JDK 11或更高版本,请下载并安装最新的JDK。你可以从Oracle官方网站或OpenJDK项目网站下载适合你操作系统的JDK安装程序。 3. 安装完JDK后,打开Android Studio。 4. 在Android Studio中,点击菜单栏中的"File"(文件)选项,然后选择"Project Structure"(项目结构)。 5. 在弹出的窗口中,选择"SDK Location"(SDK位置)选项卡。 6. 在"JDK location"(JDK位置)下拉菜单中,选择你刚刚安装的JDK路径。 7. 点击"Apply"(应用)按钮,然后点击"OK"(确定)按钮保存更改。 8. 重新编译你的项目,看看是否还会出现"Unsupported class file major version 61"的错误。 如果你按照上述步骤操作后仍然遇到问题,请确保你的Android Studio版本与你安装的JDK版本兼容。你可以查看Android Studio的官方文档或者开发者社区来获取更多关于兼容性的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值