web-dev-qa-db-ja.com

「Android-24」をコンパイルするにはJDK 1.8以降が必要です

Android St​​udioを使用していますが、最近エラーが発生しました:

エラー:タスク ':app:compileDebugJavaWithJavac'の実行に失敗しました。 compileSdkVersion 'Android-24'をコンパイルするには、JDK 1.8以降が必要です。

しかし、私はすでにJDK 1.8をインストールしています:

:\ Users ..> Java -version
Javaバージョン「1.8.0_91」Java(TM)SEランタイム
環境(ビルド1.8.0_91-b15)Java HotSpot(TM)64ビットサーバーVM
(ビルド25.91-b15、混合モード)

修正方法ありがとう

77
T D Nguyen

Android St​​udioを開きます:
File> Project Structure> JDKロケーションがJDK 1.8ディレクトリを指しているかどうかを確認します。

注:使用できるcompileSdkVersion 24

179
Juan Cruz Soler

私は数日間同じ問題を抱えています。私はWindowsでうまくいく解決策を見つけました。 (環境変数も設定しますが、必要かどうかはわかりません。)

これらの行をbuild.gradleファイルに追加します。

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

ソース: https://code.google.com/p/Android/issues/detail?id=20385

9
Szelk Baltazár

参考までに、Ionicプロジェクトでこのエラーが発生しました。すべてのコマンドが戻って正しいJDKを指し示し、Java_HOMEが正しく設定されました。

PATHにJDK 1.7\binへのエントリがあり、それを1.8\binに置き換えて修正しました。

2
Stevo

最新のjdkをインストールしましたが、これを行うまでは古いjdkを使用していました。

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

古いJDKパスを新しいjdkパスに置き換えます。

今魅力のように動作します:)

2
Pawan

Android St​​udioを開きます:[ファイル]> [プロジェクト構造]> [SDKの場所]> [jdk1.8.0_101.jdkを選択]> [ホーム]

0
Mihir Vaghela

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を実行したときにJava 8が表示されていたにもかかわらず、gradle -versionファイルで実際にオーバーライドされていることがわかりました。

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

修正するには、Java.homeからgradle.properties行を削除しました。うまくいけば、他の誰かがコマンドラインから同じ問題に直面している場合に役立ちます。

0
Bradford2000

Windows 10では、最初にプロジェクト構造を確認し、古い1.7 jdkを指していました。 Android St​​udioを閉じてから、古いjdk(および一貫性のためにjreライブラリ)の名前を変更し、最新の1.8ライブラリのみを残しました。 Android St​​udioを再起動してアプリケーションをビルドしようとすると、Java JDKライブラリを要求し、最新の1.8 JDKライブラリへのパスを指定しました。私のシステムでは、C:\ Program Files\Java\jdk1.8.0_112でした。

0
scvblwxq

Windowsのコマンドラインからも同じ問題が発生していましたが、同じヒントが表示されます。

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

JDK locationProject Structureを確認してください。

Android St​​udioを開きます: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.properties.gradleディレクトリのHOME_DIRECTORYにあるgradle.propertyを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
0
Francis Bacon