【问题标题】:'android-24' requires JDK 1.8 or later to compile'android-24' 需要 JDK 1.8 或更高版本才能编译
【发布时间】:2016-10-22 08:47:08
【问题描述】:

我用的是Android Studio,最近报错:

错误:任务 ':app:compileDebugJavaWithJavac' 执行失败。 compileSdkVersion 'android-24' 需要 JDK 1.8 或更高版本才能编译。

但我已经安装了 JDK 1.8:

:\Users..>java -version
java 版本“1.8.0_91”Java(TM) SE 运行时
环境 (build 1.8.0_91-b15) Java HotSpot(TM) 64-Bit Server VM
(构建 25.91-b15,混合模式)

如何解决?谢谢

【问题讨论】:

  • 谢谢。现在可以了。

标签: java android android-studio


【解决方案1】:

在 Android Studio 中打开:
File > Project Structure > 查看 JDK 位置是否指向您的 JDK 1.8 目录。

注意:您可以使用compileSdkVersion 24

【讨论】:

  • 不知何故,使用上述解决方案更改为 JDK8 不起作用。文件->项目结构->JDK 位置在每次构建期间恢复为 jdk1.7。 @Szelk Baltazár 的解决方案对我有用。
  • 如前所述,JDK 位置恢复到 jdk 1.7,@Szelk Baltazár 的解决方案也不起作用。所以,像stackoverflow.com/a/35974928/2914140 一样重新定义系统变量,关闭 Android Studio(也许重新启动计算机)。通过删除文件jdk.table.xml 来更改位置,如stackoverflow.com/a/38067170/2914140 中所述。在 Java 世界里,这一切都太可怕了。
【解决方案2】:

我有几天同样的问题。我找到了一个适用于 Windows 的解决方案。 (我也设置了环境变量,但不知道是否需要。)

将这些行添加到 build.gradle 文件中:

android {
     ...
     defaultConfig {
          ...
          jackOptions {
              enabled true
          }
     }
     compileOptions {
         targetCompatibility 1.8
         sourceCompatibility 1.8
     }
}

来源:https://code.google.com/p/android/issues/detail?id=203850

【讨论】:

    【解决方案3】:

    我安装了最新的 jdk,但在我这样做之前它一直在使用旧的:

    app rt-click >> module settings >> sdk location >> (old jdk path)
    

    用新的 jdk 路径替换旧的 JDK 路径。

    现在像魅力一样工作:)

    【讨论】:

      【解决方案4】:

      仅供参考,我在 Ionic 项目中遇到了这个错误。返回的所有命令都指向正确的 JDK,并且 JAVA_HOME 设置正确。

      在我的 JDK 1.7\bin 的 PATH 中有一个条目,将其替换为 1.8\bin 为我修复了它。

      【讨论】:

        【解决方案5】:

        我在 Mac 上的命令行中也遇到了同样的问题,但答案是 JAVA_HOME 被覆盖了。要跟踪它被覆盖的位置,首先从命令行检查 java:

        $ java -version
        java version "1.8.0_92"
        Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
        Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
        

        然后检查 Gradle 使用的是哪个 Java 版本:

        $ gradle -version
        
        ------------------------------------------------------------
        Gradle 2.13
        ------------------------------------------------------------
        
        Build time:   2016-04-25 04:10:10 UTC
        Build number: none
        Revision:     3b427b1481e46232107303c90be7b05079b05b1c
        
        Groovy:       2.4.4
        Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
        JVM:          1.8.0_92 (Oracle Corporation 25.92-b14)
        OS:           Mac OS X 10.11.5 x86_64
        

        此时,我还没有找到问题的根源。稍微挖掘了一下,发现它确实在我的gradle.properties 文件中被覆盖,即使在我执行gradle -version 时它显示的是Java 8:

        org.gradle.daemon=true
        org.gradle.java.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
        org.gradle.jvmargs=-XX:MaxPermSize=512m -XX:-UseSplitVerifier -Xms512m -Xmx6144m
        

        为了解决这个问题,我刚刚从gradle.properties 中删除了java.home 行。如果其他人从命令行遇到同样的问题,希望这会有所帮助。

        【讨论】:

          【解决方案6】:

          在 Android Studio 中打开: 文件 > 项目结构 > SDK 位置 > 选择 jdk1.8.0_101.jdk > Home

          【讨论】:

            【解决方案7】:

            我在 Windows 的命令行中也遇到了同样的问题,它显示了相同的提示。

            Error:Execution failed for task ':app:compileDebugJavaWithJavac'. `compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.`
            

            Project Structure 中检查JDK location

            在Android Studio中打开:File > Project Structure > 查看JDK位置 指向您的 JDK 1.8 目录。

            应该是这样的

            JDK Location
            C:\Program Files\Java\jdk1.8.0_91
            

            我已经为 JDK 设置了正确的位置。

            检查java版本

            D:\AndroidSelfTrainingProject\CustomBuildIdDemo>java -version
            java version "1.8.0_91"
            Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
            Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
            

            检查 gradle 版本

            .D:\AndroidSelfTrainingProject\CustomBuildIdDemo>gradle -v
            
            ------------------------------------------------------------
            Gradle 2.10
            ------------------------------------------------------------
            
            Build time:   2015-12-21 21:15:04 UTC
            Build number: none
            Revision:     276bdcded730f53aa8c11b479986aafa58e124a6
            
            Groovy:       2.4.4
            Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
            JVM:          1.7.0_79 (Oracle Corporation 24.79-b02)
            OS:           Windows 7 6.1 amd64
            

            JVM 版本应该是 1.8。 要修复它,我们可以添加 gradle.property 在gradle.properties 中的.gradle 目录中的HOME_DIRECTORY 中设置org.gradle.java.home=/path_to_jdk_directory。至于我,就像:

            org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_91
            

            为了验证是否设置正确,我们可以创建一个gradle build 任务。

            D:\AndroidSelfTrainingProject\CustomBuildIdDemo>gradle build
            To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon
            : https://docs.gradle.org/2.10/userguide/gradle_daemon.html.
            
            To run dex in process, the Gradle daemon needs a larger heap.
            It currently has approximately 910 MB.
            For faster builds, increase the maximum heap size for the Gradle daemon to more than 2048 MB.
            To do this set org.gradle.jvmargs=-Xmx2048M in the project gradle.properties.
            For more information see https://docs.gradle.org/current/userguide/build_environment.html
            

            【讨论】:

            • 如果有人能帮我修复这个答案的格式,那将不胜感激。
            【解决方案8】:

            在 Windows 10 上,我首先检查了项目结构,它指向一个旧的 1.7 jdk。我关闭了 Android Studio,然后重命名了旧的 jdks(和 jre 库以保持一致性),只留下最新的 1.8 库。当我重新启动 Android Studio 并尝试构建应用程序时,它要求我提供 Java JDK 库,并且我提供了最新 1.8 JDK 库的路径。在我的系统上是 C:\Program Files\Java\jdk1.8.0_112。

            【讨论】:

              猜你喜欢
              • 2016-12-31
              • 2017-01-09
              • 1970-01-01
              • 1970-01-01
              • 2020-07-12
              • 1970-01-01
              • 2016-06-26
              • 1970-01-01
              • 2018-01-02
              相关资源
              最近更新 更多