Android Studio是否完全支持JDK 1.8?

25

我刚从之前的JDK 1.8.0_33下载了JDK 1.8.0_51,因为我遇到了一些问题。存在一些使用Jdk 8与Android的解决方案,我只是想知道Google是否已经在Android Studio中完全支持了JDK?还是应该使用JDK 1.7?任何建议将不胜感激。


2
我这里只有Java 8和Android Studio,目前还没有问题。但是在开发Android应用时不要使用Java 8的Lambda等特性,因为它们还不能正常工作。 - Glenn
8个回答

16

现在您可以在Android中使用Java8。

请将以下行添加到您的build.gradle文件中。

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

请参考此文档:http://developer.android.com/intl/es/preview/j8-jack.html

同时确保启用了Jack:

android {
  //...

  defaultConfig {
  //...

  // Required to use Java 8.
  jackOptions {
    enabled true
  }

}

此外,您需要使用Android SDK Build Tools的24版本或更高版本:

android {
  //...

  buildToolsVersion "25.0.2"

}

2
现在不仅可以使用Java8,而且API 24(Nougat)或更高版本需要它。 - yuval
jackOptions已被弃用。请参见:https://developer.android.com/studio/write/java8-support - Redwolf

10

您应该使用JDK 1.7。 JDK 8中有一些尚未支持的功能。


1
@JoshPinter,您可以使用JDK 8,但是,除非您的Android应用程序针对SDK 23及更高版本,否则无需使用JDK 8。如果启用“Jack and Jill”,则可以使用Java 8,但是,正如我所说,这需要至少23的最低目标。 - d0nut
谢谢。我曾经尝试过这种方法,但是遇到了Jack和Jill导致我的应用程序崩溃的问题。不得不增加堆大小和其他一些东西。这显然不值得。 :) - Joshua Pinter
@JoshPinter 如果你想使用更现代的东西,我建议你用 Kotlin 来编写应用程序。它与 Java 完全兼容,并提供诸如 lambda 等功能,使编写应用程序更加愉快。这种语言本身更像 Swift 而不是 Java,并且据我所知,JetBrains 使用它来构建他们的 IDE。非常稳定。 - d0nut
1
太好了,谢谢你的建议。我已经阅读和观看了很多关于Kotlin的内容。我现在大多数时间都在开发React Native,但如果最终需要做很多本地工作,我会考虑学习它的。 - Joshua Pinter

6

使用JDK 1.8是可以的,除了Android Studio可能会经常提供运行时检查,建议您使用JDK 1.8的lambda功能。但您可以进入“设置- >编辑器->检查- >Java语言级别问题/迁移辅助”,关闭您想要关闭的内容。


5
你可以使用Java 1.8,但不要使用1.8的特性,因为目前有一些Java 1.8的特性还没有得到支持。

3
例如,我不相信 Android Studio 支持 java.time。 - JDOaktown

4
如果你之前使用了已被Android Studio 3.0.0弃用的JACK选项,那么迁移并使用支持的Java 8语言特性将非常简单,只需从应用的build.gradle文件中移除:

jackOptions { enabled true }

并保持以下配置即可:

android {
  ...
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

更多详情请点击此链接


2

使用Java 1.7或Java 1.6

我自己在使用Android 4和Java 7时遇到了问题,所以我使用了1.6,所有问题都解决了。

我认为使用1.7而不是1.8会遇到更少的问题。


0

当尝试使用Java 8构建Android Studio项目时,实际上会遇到各种疯狂的Gradle错误,例如:

2016-04-10 17:50:49,401 [1624477] WARN - nal.AbstractExternalSystemTask - Gradle 2.10需要Java 6或更高版本才能运行。您当前的构建配置为使用Java 5。 com.intellij.openapi.externalSystem.model.ExternalSystemException: Gradle 2.10需要Java 6或更高版本才能运行。您当前的构建配置为使用Java 5。

一旦我将默认JDK切换到Java 7,它就可以正常工作了。看起来使用Java SE 8运行Android Studio本身是可以容忍的,但是通过Gradle构建Android应用程序只有在使用Java 7时才能正常工作。


0

我在Java更新到1.8之后开始遇到这个错误

错误:执行任务“:app:processDebugResources”失败。

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: 进程“命令'C:\ Users \ whatever \ AppData \ Local \ Android \ sdk \ build-tools \ 23.0.1 \ aapt.exe'”以非零退出值1结束


如果我得到了非零退出值1,我总是去构建并清理项目。这对我总是解决问题。 - Madona wambua
谢谢你的回复,但没有帮助。最终我不得不回到Java 1.7。 - Lakhwinder Singh Dhillon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接