it-swarm.com.de

Wie setze ich -source 1.7 in Android Studio und Gradle

Beim Versuch, mein Projekt in Android Studio zu kompilieren, wird folgende Fehlermeldung angezeigt:

Gradle: error: diamond operator is not supported in -source 1.6

Ich habe in allen Projekteinstellungen, die ich gefunden habe, 1,7 als Ziel festgelegt. Auch der in Projekt-SDKs unter 1.7 SDK angezeigte Pfad ist der richtige Pfad zur Java 1.7-Installation.

Selbst wenn ich Java -version im Terminal ausführe, wird mir mitgeteilt, dass ich auf Java 1.7.

Ich habe versucht, die Java_HOME-Umgebungsvariable auf Folgendes zu setzen:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

Der Fehler verschwindet nicht. Wie behebe ich den Fehler?

175
simekadam

Java 7-Unterstützung wurde in Build-Tools 19 hinzugefügt. Sie können jetzt Funktionen wie den Diamond-Operator, Multi-Catch, Try-with-Resources, Zeichenfolgen in Switches usw. verwenden. Fügen Sie Folgendes zu Ihrem build.gradle Hinzu.

Android {
    compileSdkVersion 19
    buildToolsVersion "19.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
    }

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

Gradle 1.7+, Android gradle plugin 0.6. + Sind erforderlich.

Beachten Sie, dass nur Versuche mit Ressourcen minSdkVersion 19 erfordern. Andere Funktionen funktionieren auf früheren Plattformen.

Link zu Android gradle plugin user guide

Link, um zu sehen, wie sich Quelle und Ziel unterscheiden

285

Möglicherweise sind die obigen Antworten alt, aber mit den neuen Android= Studios 1 führen Sie die folgenden Schritte aus, um das Modul für 1.7 (oder 1.6, wenn Sie es vorziehen) auszuführen. Klicken Sie auf Datei -> Projektstruktur Wählen Sie das Modul aus, das Sie ausführen möchten, und wählen Sie dann unter "Quellkompatibilität" und "Zielkompatibilität" 1.7 aus. Klicken Sie auf "OK".

Project Structure screen of Android Studios 1

73
Simon

Sie können es in der neuen Android Studio-Version (0.8.X) ändern

Datei-> Andere Einstellungen -> Standardeinstellungen -> Compiler (Erweitern Sie ihn, indem Sie auf den Pfeil nach links klicken) -> Java Compiler -> Hier können Sie die Version des Projektbytecodes ändern

enter image description here

14
San

Neueste Android Studio 1.4.

Klicken Sie auf Datei-> Projektstruktur-> SDK-Speicherort-> JDK-Speicherort.

Sie können auch die JDK-Versionskompatibilität für einzelne Module festlegen, indem Sie das Modul (unter dem SDK-Speicherort) aufrufen und die Quellkompatibilität entsprechend bearbeiten. (Beachten Sie, dies gilt nur für Android Module).

8
Elye

Klicken Sie mit der rechten Maustaste auf Ihr Projekt> Moduleinstellungen öffnen> Wählen Sie im Abschnitt "Projekteinstellungen" die Option "Projekt"

Ändern Sie das Project SDK auf das neueste (möglicherweise API 21) und das Project-Sprachniveau auf 7+

5
kunal

Derzeit unterstützt Android nicht Java 7, nur Java 6. Neue Funktionen in Java 7 wie die Diamond-Syntax werden daher derzeit nicht unterstützt. Es ist nicht einfach, Quellen zu finden, die dies unterstützen, aber ich konnte feststellen, dass die Dalvic-Engine auf einer Teilmenge von Apache Harmony basiert welches immer nur Java bis Version 6 unterstützt. Und wenn Sie die Systemanforderungen für die Entwicklung Android Apps prüfen, heißt es auch, dass es wird mindestens JDK 6 benötigt (obwohl dies natürlich kein echter Beweis ist, sondern nur ein Hinweis) und dies sagt so ziemlich dasselbe wie ich. Wenn ich etwas Wesentlicheres finde, werde ich füge es hinzu.

Bearbeiten: Es scheint, dass Java 7 Unterstützung hinzugefügt wurde, seit ich diese Antwort ursprünglich geschrieben habe; überprüfen Sie die Antwort mit Sergii Pechenizkyi.

4
blalasaadri

Suchen Sie in Gradle nach sourceCompatibility und ändern Sie es von 1.6 in 7 . Das hat zumindest bei mir funktioniert.

Sie können auch in die Moduleinstellungen gehen und die Quell-/Ziel-Kompatibilität auf 1,7 einstellen.

Moduleinstellungsfenster

Das wird den folgenden Code in Ihrem Gradle erzeugen:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}
2
Feorice

Verwenden Sie immer die neueste SDK-Version, um Folgendes zu erstellen:

compileSdkVersion 23

Dies hat hat keinen Einfluss auf das Laufzeitverhalten, bietet Ihnen jedoch die neuesten Programmierfunktionen.

2
DenisKolodin