现象描述:Android工程完全没有错误,编译也通过,在运行的时候弹出框显示Unsupported major.minor version 52.0错误 ps:当时一脸懵B,之前项目还能正常运行
问题本质原因
在高版本JDK编译的项目放到低版本JDK所在的eclipse环境中编译运行将会出现这个错误。
在网上查找解决问题的原因,网上普遍的解决思路就是更换JDK的版本,但是楼主偶然看到一个说法是SDK的问题,楼主这才恍然大悟,之前做了一个操作,用Android studio的时候提示我更新SDK,楼主什么都没有想提示我更新就更新呗,然后问题就出现了,楼主公司现在用的还是eclipse开发,而且eclipse和Android studio用的是同一个SDK,更新之后build-tools使用的版本太高,eclipse工程配置环境不支持
解决方法
根据网上的说法和楼主自己的经验,总结出三种解决办法
- 更换高版本的JDK
- 检查工程中编译使用的JDK版本
- 降低build-tools版本
解决1、2两种问题的方法具体参考该博主文章有详细介绍点此传送门
对楼主有用的方法
在网上搜的关于Unsupported major.minor version 52.0问题的解决方案都是建议修改jdk版本的,但是仔细想一想其实不是这个原因,因为jdk是用在eclipse上编译时使用的,上面我们说了eclipse编译工程是不抛错的,因此不是IDE的原因;而既然是在lauching阶段出现的问题,所以猜测是android自身进行的“第二次”编译出的错误,而这种错误是和android的SDK相关的
楼主检查SDK的时候,发现build-tools使用的版本是25(开发7.0使用),就果断的卸载了,然后再次运行项目就OK了。
注:运行的时候可能会发现出现别的问题,不用着急,这种问题可能是卸载build-tools版本引起的,SDK中一些东西关联使用了build-tools25版本的一些东西,导致出现错误,这时候只用把SDK中下载的所有25版本的相关东西删除即可
总结
- 使用eclipse和androd studio开发中,SDK最好分开使用,引用同一个SDK在更新的时候可能会遇到楼主这样的问题;
- 不同版本JDK编译major.minor version详解具体参考该博主文章点此传送门