3 回答
![?](http://img1.sycdn.imooc.com/545850ee0001798a02200220-100-100.jpg)
TA贡献1839条经验 获得超15个赞
编辑:在撰写本文时,最新版本是Android 9和Eclipse Indigo。从那以后,事情发生了变化。
实际答案
是的,我试过了。但这不是一个很好的测试,因为兼容性仅限于6级,没有办法(至少没有简单的方法)真正使用java 7:
首先,我在没有安装其他JDK的机器上安装了JDK7 - 还没有安装Eclipse和Android:
然后我安装了一个全新的Eclipse Indigo并检查它实际上是使用JDK 7(好吧,因为这是唯一的一个,因为这是我选择的那个我会感到惊讶)
然后我安装了最新版本的Android SDK(EDIT:Honeycomb,API13,在撰写本文时)。它找到了我的JDK 7并正确安装。ADT也一样。
但是在尝试编译和运行Hello Word Android应用程序时,我有一个惊喜。兼容性设置为Java 6,无法强制它使用Java 7:
我试过一个非Android项目,一个普通的Java项目,我有解释。兼容性级别似乎受到Eclipse的限制(请参阅下图中底部的消息):
因此,我不得不的Hello World的工作,以及其它的应用程序,更复杂和使用SQLite
,Listview
,Sensor
和Camera
,但是这只能证明的Java 7的兼容性处理似乎做得很好,与Android合作。
那么,是否有人尝试使用优秀的旧Ant,以绕过上面提到的Eclipse限制?
理论上的答案
无论如何,SDK被设计成与Java 5或6一起使用,作为解释在这里。
我们可能会使用Java 7,但它会“偶然”工作。DEX的构建可以正常工作,一旦DEX构建,它可能工作与否。这是因为使用非限定JDK会根据定义给出不可预测的结果。
即使有人在普通Java 7下成功构建了一个Android应用程序,但这并不符合JDK的要求。应用于另一个应用程序的相同过程可能会失败,或者生成的应用程序可能存在与该JDK的使用相关的错误。不建议。
对于那些参与webapps开发的人来说,这与在Java 5或6下构建的Web应用程序在仅适用于Java 4的应用程序服务器下部署完全相同(例如,使用Weblogic 8)。这可能有用,但这不是可以推荐用于其他目的而不是尝试。
添加回答
举报