【存疑】【安卓】Eclipse Compiler compliance level 设置问题

在使用JDK 1.8和Eclipse Neon.2进行Android开发时,将compileSDK version设为25,但Compiler compliance level设为1.8时遇到dx工具不支持的错误。解决方法是将Compiler compliance level设为1.7才能正常编译。本文探讨了Compiler compliance level的含义,可能与minSDKversion类似,限制了编程时能使用的最低API版本,并指出compliance level通常只能设置为JDK版本低一个级别,原因可能是Eclipse的Java编译器限制或兼容性问题。作者计划等待新版本工具以验证结论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 当前的环境是,JDK 1.8,而Eclipse 是Neon.2 (4.6.2),当前2017年3月官网的最新版(应该是的吧?)。Android  SDK版本是API 25。

然而在安卓开发时,把compileSDK version设为25 。java compiler里面的Compiler compliance level设为1.8,build project出现报错,大意是 dx not support class version52.0之类的,最后红字报错error1.

出现的原因推测是SDK版本和java编译器的版本不匹配。

解决过程中,只当在选择Compiler compliance level为1.7的时候,正常编译。


网上搜到的解决方案很多,有说检查installed jre的版本是否和SDK一致,升级软件之类的,感觉不在点上。参考了下文:

Eclipse中Compiler compliance level的含义说明  

琢磨出的结论是,这一项参数的设置大概和android minSDKversion有相似之处,都是在编程时预期的最低可使用版本(此推测存疑,尚未实验证实。)

因此才不能在编程时使用高于Compiler compliance level的API。


对于网上查到的  buildpath的JDK和Compiler compliance level设置成相同版本这一说法,感觉还是存在疑点。发现了和我相似的情况,即compliance level最高只能比当前使用的JDK低一个版本,而设置成相同会报错。

目前尚不知道是因为“eclipse的java 编译器只开发到比最新JDK低一个版本”?还是因为兼容level的固有属性?还是因为是java compiler更新太快超出了当前最新dx工具?


等上述工具新版本出现,再试验一下,以求结论。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值