【问题标题】:Is JDK 1.8 fully supported by Android Studio?Android Studio 是否完全支持 JDK 1.8?
【发布时间】:2015-10-10 07:13:16
【问题描述】:

我刚刚从以前的 JDK 1.8.0_33 下载了 JDK 1.8.0_51,因为我遇到了问题。有一些解决方法可以将 Jdk 8 与 Android 一起使用,我只是想知道 Google 是否已经在 Android Studio 中添加了对 JDK 的全面支持?还是我应该只使用 JDK 1.7?我们将不胜感激。

【问题讨论】:

  • 我这里只有 Java 8 和 Android Studio。到目前为止没有问题。但是不要使用(在开发 Android 应用程序时)Java 8 的功能,如 Lambda。它还不能工作。

标签: java android android-studio


【解决方案1】:

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

我认为使用 1.7 而不是 1.8 会减少问题

【讨论】:

    【解决方案2】:

    您应该只使用 JDK 1.7。 JDK 8 中有一些功能尚不受支持。

    【讨论】:

    • @JoshPinter 您可以使用 JDK 8,但除非您的 android 应用针对 SDK 23 或更高版本,否则无需使用 JDK 8。如果您使用 Java 8 可以启用“Jack and Jill”,但就像我说的那样,这需要 minimum 目标为 23。
    • 谢谢。我沿着这条路线走,遇到了 Jack 和 Jill 的问题,导致我的应用程序崩溃。还必须增加堆大小和其他一些东西。这绝对不值得。 :)
    • @JoshPinter 如果您想使用更现代的东西,我建议您使用 Kotlin 编写应用程序。它与 Java 100% 完全可互操作,并为您提供诸如 lambdas 之类的东西,使编写应用程序的体验更加愉快。该语言本身更像 Swift 而不是 Java,据我了解,JetBrains 使用它来构建他们的 IDE。非常稳定。
    • 太好了,感谢您的提示。我已经阅读并观看了很多关于 Kotlin 的内容。这些天我主要是在 React Native 中开发,但如果最终做了很多本地工作,我会看看它。
    【解决方案3】:

    您可以使用 java 1.8 但不要使用 1.8 功能,因为 Java 1.8 中有一些功能现在不支持。

    【讨论】:

    • 例如,我不相信 Android Studio 支持 java.time。
    【解决方案4】:

    使用 JDK 1.8 没问题,除了 Android Studio 可能经常为您提供运行时检查以建议您使用 JDK 1.8 的功能(如 lambda)之外,没有什么会打扰您。但是你可以去 Settings->Editor->Inspections->Java language level issues/migration aids 并关闭你想要的。

    【讨论】:

      【解决方案5】:

      java 更新到 1.8 后我开始收到此错误

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

      com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Users\whatever\AppData\Local\Android\sdk\build-tools\23.0. 1\aapt.exe'' 以非零退出值 1 结束

      【讨论】:

      • 如果我用非零退出值 1 完成了这个,我总是去构建和(清理项目)。总能为我解决问题。
      • 感谢您的回复,但这并没有帮助我最终不得不回到 java 1.7
      【解决方案6】:

      您现在可以将 java8 与 android 一起使用

      在你的 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
        }
      
      }
      

      此外,您需要使用 24 或更高版本的 Android SDK 构建工具:

      android {
        //...
      
        buildToolsVersion "25.0.2"
      
      }
      

      【讨论】:

      【解决方案7】:

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

      2016-04-10 17:50:49,401 [1624477] 警告 - 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。

      【讨论】:

        【解决方案8】:

        如果您之前使用过 JACK 选项,这些选项已从 Android Studio 3.0.0 中弃用,那么迁移和使用受支持的 Java 8 语言功能就像删除:

        一样简单:

        罢工>

        jackOptions { 启用 true }

        来自应用的 build.gradle 文件并保持如下配置:

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

        详情请关注this链接。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-07-14
          • 2020-03-19
          • 1970-01-01
          • 2023-03-16
          • 1970-01-01
          • 1970-01-01
          • 2014-07-19
          • 1970-01-01
          相关资源
          最近更新 更多