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


 当前的环境是,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工具?


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



你可能感兴趣的:(【存疑】【安卓】Eclipse Compiler compliance level 设置问题)