先说明下,设置编译等级无法解决此问题。 我代码中使用了部分1.7特性。例如 switch 使用字符串等等。 Android requires compiler compliance level 5.0 or 6.0. Found ""1.7"" instead. Please use Android Tools > Fix Project Properties. 但是代码中需要大量修改使用了1.7特性的部分。并且switch只能修改为if语句了。 有什么方法能解决此问题? Eclipse IDE for Java Developers Version: Juno Service Release 2 Build id: 20130225-0426 ADT版本: Android DDMS 21.1.0.v201302060044-569685 Android Development Tools 21.1.0.v201302060044-569685 ............ |
|
10分 |
ADT是基于JAVA 1.6 的
|
看了下文档说必须1.6或更高。。难道说更高只是指JDK可以使用高版本,但是语言特性却不能使用高版本的? |
|
他的意思是你可以装1.7的JDK(因为JAVA1.7里有1.6的编译器) |
|
5分 |
加个编译说明能不能解决?
|
可是事实貌似不是这样的。 switch (ContentListActivity.this.myApplication.getTabs()) { case "receive": .......... apk文件反编译后的smali文件 .line 95 :sswitch_0 const-string v3, "receive" 这应该是支持吧…. |
|
对了,switch方法,最后好像是使用的equals方法
invoke-virtual {v4, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z 不知道1.7中switch对字符串的处理是不是使用的equals方法。没有去查看jdk的源码。 |
|
5分 |
Please use Android Tools > Fix Project Properties.
你按照提示操作一下看看 |
多谢回复,但是前面已经说了。更改编译等级无法解决问题。 |
|
是吗…我自己倒是没试过 |
|
话说 |
|
可以使用jdk1.7,但是编译等级必须是1.6,也就是说。代码必须兼容1.6才行。我现在纳闷的是,idea下是怎么编译通过的。难道idea 会自动修正编码。不明白了。。 |
|
有谁知道idea是怎么处理的 |
|
我也不了解.. |
|
结贴,来者都有份!
|
|
话说 怎么解决的啊
|
|
修改代码解决的 |
|
幸亏idea比较智能,重构代码比较快,先在idea中修改编译等级,然后使用IDE自动修正代码就好了。也没花太多时间 |
|
难道只有修改自己的代码来解决问题吗,这样的话1.7中好多新的功能都没法使用了
|
|
我也遇到了这个问题,搜帖子发现没有解决办法 后来换了开发环境解决了该问题, 现在将解决的环境配置贴出来 希望以后有人可以有一点帮助吧。。。
ADT 23.0.4 |