Android SDK可以与JDK 1.7一起使用吗?

eBe*_*ani 61 java android

我刚刚安装了Android SDK R16和JDK 7,但我一直收到错误

Android需要编译器合规性级别5.0或6.0.找到'1.7'而不是.请使用Android工具>修复项目属性."

我正在使用JRE 1.7的一些功能,所以我不能只将它切换到1.6.我该如何解决这个问题?

ATo*_*Tom 40

是的,您可以将Java 1.7用于Android开发.您必须在编译期间保持与Java 6的源兼容性,并且只有下一个问题是因为更改了jarsigner的默认算法.

这是在使用Ant(解决方法)进行Android签名的 Stack Overflow问题中解决的.

但它已经在Ant中得到修复.因此,官方支持将很快直接在Android SDK中.

如果你想使用Maven进行构建,那么解决方案就是Android APK签名中存在什么样的pitfals.

更新:最新版本的Ant,Maven Plugin或Gradle对Java 7或Java 8没有任何问题,因此这已经过时了.

  • 这有点过时了.从构建工具19开始,Android完全支持Java 1.7.因此,您可以将1.7设置为编译的源和目标.对此的支持来自Android studio 0.3.2.Android kitkat完全支持JAVA 1.7 API,但1.7的大多数语言功能也可以在旧的机器人上使用.除了"尝试资源". (17认同)
  • 不幸的是,我们14%的成员并非浪费. (7认同)

and*_*per 29

从ADT(22.6)开始,可以使用Java 1.7功能:

重要:

try-with-resources需要API 19及更高版本:

添加了对Java 7语言功能的支持,如multi-catch,try-with-resources和diamond操作符.这些功能需要构建工具的19或更高版本.尝试使用资源需要minSdkVersion 19; 其余的新语言功能需要minSdkVersion 8或更高版本.

  • 我想从发布说明中强调,如果您使用try-with-resources,那么您的app**只需要**minSdk 19.否则你需要minSdk 8.(我最初只读过你答案的第一行,这意味着不然.) (9认同)

Tom*_*ski 19

您只需要在PC上使用1.6即可.我有同样的问题.安装1.6 JDK,并将其添加为已知的JDK,但实际上不要为您的项目选择它.

  • 对,我想我的问题是我想使用JRE 1.7但不能,因为Android SDK不支持它. (3认同)

kli*_*mat 12

值得一提的是,如果你想要使用API​​ 21(Android 5.0 Lollipop)编译项目,你必须使用JDK 1.7.

API 21将不再适用于JDK 1.6.