Welche JDK-Version (Sprachstufe) wird für Android Studio benötigt?

76

Ich bin ein Neuling in der Android-Welt und mit einem .NET-Hintergrund. Ich versuche, das Android Studio zu installieren, habe jedoch auf Android.com ein Missverhältnis bezüglich der JDK-Version, die für die Entwicklung von Android-Anwendungen erforderlich ist.

Auf der SDK-Webseite wird angegeben, dass JDK 6 erforderlich ist (im Abschnitt Systemanforderungen). Jim Wilson besteht in seinem Kurs über Pluralsight (der seit letztem Mai ziemlich neu ist) auch darauf, dass die Verwendung von Version 7 mit dem Android SDK viel Kopfschmerzen verursacht und es klar macht, nur JDK 6 zu verwenden.

Auf der Android Studio-Seite (unter Installationsschritt 2) wird erläutert, wie eine Umgebungsvariable festgelegt wird, die den richtigen JDK-Speicherort angibt. Hier verwenden sie einen Pfad von JDK 7

Wählen Sie Start menu > Computer > System Properties > Advanced System Properties. Öffnen Advanced tab > Environment VariablesSie dann eine neue Systemvariable und fügen JAVA_HOMESie sie hinzu, die beispielsweise auf Ihren JDK-Ordner verweist C:\Program Files\Java\jdk1.7.0_21.

Ich bin mir ziemlich sicher, dass sowohl das ADT & Eclipse-Bundle als auch das Android Studio-Bundle dasselbe SDK verwenden, aber jetzt bin ich verwirrt darüber, welche JDK-Version ich installieren muss. Mein einziger Zweck ist es, Probleme so weit wie möglich zu vermeiden, während ich meine ersten Schritte in die Android-Entwicklung mache.

Haftungsausschluss: Ich bin in keiner Weise mit Pluralsight verwandt. Ich bin nur ein normaler Benutzer, der den Kursen folgt.

Moslem Ben Dhaou
quelle

Antworten:

76

Antwortklärung - Android Studio unterstützt JDK8

Das Folgende ist eine Antwort auf die Frage "Welche Java-Version unterstützt Android?" Was unterscheidet sich von "Mit welcher Java-Version kann ich Android Studio ausführen?" Das heißt, ich glaube, was tatsächlich gefragt wurde. Für diejenigen, die die zweite Frage beantworten möchten, ist die Verwendung von Android Studio mit Java 1.7 möglicherweise hilfreich.

Außerdem: Informationen zu den Systemanforderungen für Android Studio finden Sie unter http://developer.android.com/sdk/index.html#latest . JDK8 ist eigentlich eine Voraussetzung für PC und Linux (Stand 14.05.16).


Java 8 Update (19.03.14)

Da ich davon ausgehen würde, dass diese Frage mit der Veröffentlichung gestern bald auftaucht: Derzeit gibt es keinen festgelegten Termin für die Unterstützung von Java 8 durch Android.

Hier ist eine Diskussion unter / androiddev - http://www.reddit.com/r/androiddev/comments/22mh0r/does_android_have_any_plans_for_java_8/

Wenn Sie wirklich Lambda-Unterstützung wünschen, können Sie Retrolambda - https://github.com/evant/gradle-retrolambda . Ich habe es nie benutzt, aber es scheint ziemlich vielversprechend.

Ein weiteres Update: Android hat Java 7-Unterstützung hinzugefügt

Android unterstützt jetzt Java 7 (abzüglich der Funktion zum Ausprobieren von Ressourcen). Weitere Informationen zu den Java 7-Funktionen finden Sie hier: https://stackoverflow.com/a/13550632/413254 . Wenn Sie gradle verwenden, können Sie Folgendes in Ihr build.gradle einfügen:

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

Ältere Antwort

Ich verwende Java 7 mit Android Studio ohne Probleme (OS X - 10.8.4). Sie müssen jedoch sicherstellen, dass Sie die Sprachstufe des Projekts auf 6.0 senken. Siehe den Screenshot unten.

Geben Sie hier die Bildbeschreibung ein

Was unten gesagt wird, macht auch Sinn. Wenn sie JDK 6 vorschlagen, ist es sinnvoll, nur JDK 6 zu verwenden. In beiden Fällen ist dies in Ordnung.

Geben Sie hier die Bildbeschreibung ein


Update: Siehe diesen SO-Beitrag - https://stackoverflow.com/a/9567402/413254

loeschg
quelle
2
Ist dies bei Java 8 immer noch der Fall? Wann wird es unterstützt?
Doplumi
1
@domenicop in der Tat. Wahrscheinlich noch ein paar Jahre nicht: P.
Loeschg
2
Android mit seiner eigenen Laufzeitumgebung ist der Grund, warum Android in Bezug auf Java-Versionen immer ein paar Jahre hinterherhinkt.
Tiktak
1
Ich sehe, dass dies eine akzeptierte Antwort ist (mit 57 positiven Stimmen), aber IMO beantwortet dies die Frage überhaupt nicht. Die Frage ist, welche Java-Version zum Ausführen von AS erforderlich ist. Dies ist völlig unabhängig von der für Android-Apps unterstützten Java-Version.
Tom
@ Tom, ich stimme zu! Ich habe die Antwort oben aktualisiert, um dies zumindest teilweise widerzuspiegeln.
Loeschg
3

Normalerweise würde ich mich an die Dokumentation halten, aber wenn der Kursleiter ausdrücklich sagt, dass er sich an JDK 6 halten soll, würde ich JDK 6 verwenden, weil Sie möchten, dass Ihre Entwicklungsumgebung so nah wie möglich an den Kursleitern ist. Es wäre scheiße, wenn Sie auf ein Problem stoßen und den Gedanken im Hinterkopf haben, dass Sie das Problem möglicherweise haben, weil Sie auf JDK 7 sind. Übrigens habe ich Android in letzter Zeit nicht berührt, aber ich persönlich bin nie auf Probleme gestoßen, als ich auf JDK 7 war, aber wohlgemerkt, ich codiere Android-Apps nur beiläufig.

Tehawtness
quelle
2

Versuchen Sie, keine höheren JDK-Versionen als die unterstützten zu verwenden. Ich bin tatsächlich auf ein sehr zweideutiges Problem gestoßen ein paar Monaten gestoßen.

Ich hatte eine eigene JAR-Bibliothek, die ich mit JDK 8 kompiliert habe, und ich habe sie in meiner Aufgabe verwendet. Es gab mir preDexDebugjedes Mal einen Fehler, wenn ich versuchte, es auszuführen. Nachdem ich stundenlang versucht hatte, die Fehlerprotokolle zu entschlüsseln, hatte ich schließlich eine Vorstellung davon, was los war. Ich habe die Systemanforderungen überprüft, die Compiler von 8 auf 7 geändert und es hat funktioniert. Es sieht so aus, als hätte es mich ein paar Stunden gekostet, mein Glas in eine Bibliothek zu stellen, anstatt es zu retten ...

Alex
quelle