首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android的Java 7语言特性

Android的Java 7语言特性
EN

Stack Overflow用户
提问于 2011-08-23 05:45:57
回答 5查看 49.7K关注 0票数 188

想知道是否有人尝试过在Android中使用新的Java7语言特性?我知道Android读取Java输出的字节码,并将其转换为dex。所以我想我的问题是它能理解Java7的字节码吗?

EN

回答 5

Stack Overflow用户

发布于 2011-08-24 20:25:29

编辑:在撰写本文时,最新版本是Android 9和Eclipse Indigo。从那时起,事情发生了变化。

  • Practical answer

是的,我试过了。但这并不是一个很好的测试,因为兼容性被限制在6级,没有办法(至少没有简单的方法)真正使用java 7:

  • 首先,我在一台没有安装其他JDK的机器上安装了一个JDK7 -- Eclipse和Android也没有安装:

  • 然后我安装了一个全新的Eclipse Indigo,并检查它实际上使用的是JDK7(好吧,因为这是唯一的,而且这是我选择的,我会感到惊讶的)

然后我安装了最新版本的Android SDK (编辑:

  • ,API13,写这篇文章的时候)。它找到了我的JDK7并正确安装了。Adt.
  • 也是如此,但当我试图编译和运行一个Hello Word安卓应用时,我有了一个惊喜。兼容性被设置为Java6,但没有办法强制它到Java7:

  • 我尝试了一个非Android的项目,一个普通的Java项目,我得到了解释。兼容级别似乎受到Eclipse的限制(参见下图底部的消息):

所以我使用了Hello World,还有其他更复杂的应用,使用了SQLiteListviewSensorCamera,但这只能证明Java7的兼容性处理似乎做得很好,可以与安卓一起工作。

那么,有没有人尝试过使用很好的旧,来绕过上面看到的限制呢?

  • Theroetical answer

无论如何,正如here所解释的那样,SDK被设计为与Java5或6一起使用。

我们可能有一些东西可以在Java 7上工作,但它会“意外地”工作。DEX的构建可能工作正常或不正常,一旦构建DEX,它可能会工作也可能不会。这是因为根据定义,使用非限定JDK会产生不可预测的结果。

即使有人在普通Java7下成功构建了一个Android应用程序,这也不符合JDK的要求。应用于另一个应用程序的相同过程可能会失败,或者生成的应用程序可能具有与该JDK的使用相关的bug。不推荐使用。

对于那些参与webapps开发的人来说,这完全等同于将一个在Java5或6下构建的web应用程序部署在一个仅适用于Java4的应用服务器上(例如WebLogic8)。这可能是可行的,但除了尝试之外,不能推荐用于其他目的。

票数 70
EN

Stack Overflow用户

发布于 2011-11-19 15:35:46

从Android SDK v15和Eclipse3.7.1开始,对于Android开发,Java7不是支持的。将源兼容性设置为1.7会强制将生成的.class文件兼容性设置为1.7,这会导致安卓编译器出现以下错误:

安卓要求编译器兼容级别为5.0或6.0。而是找到了“1.7”。请使用安卓工具>修复项目属性。

票数 12
EN

Stack Overflow用户

发布于 2013-07-01 06:04:48

看起来,让它在纯ant上工作有点杂乱无章。

但它对我很有效:http://www.informit.com/articles/article.aspx?p=1966024

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7153989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档