Beim Kompilieren meines Projekts in Android Studio wird folgende Fehlermeldung angezeigt:
Gradle: error: diamond operator is not supported in -source 1.6
Ich habe in allen gefundenen Projekteinstellungen 1.7 als Ziel festgelegt. Auch der in den Projekt-SDKs unter 1.7 SDK angezeigte Pfad ist der richtige Pfad zur Installation von Java 1.7.
Selbst wenn ich Java-Version im Terminal ausführe, wird mir mitgeteilt, dass ich Java 1.7 verwende.
Ich habe versucht, die env-Variable JAVA_HOME auf Folgendes zu setzen:
/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
Der Fehler verschwindet nicht. Wie kann ich den Fehler beseitigen?
java
intellij-idea
gradle
android-studio
java-7
Simekadam
quelle
quelle
sourceCompatibility
in Ihrem build.gradle festgelegt?Antworten:
Java 7-Unterstützung wurde bei Build-Tools 19 hinzugefügt. Sie können jetzt Funktionen wie den Diamond-Operator, Multi-Catch, Try-with-Resources, Zeichenfolgen in Switches usw. verwenden
build.gradle
.Gradle 1.7+, Android Gradle Plugin 0.6. + Sind erforderlich.
Beachten Sie, dass für den Versuch nur mit Ressourcen
minSdkVersion
19 erforderlich sind . Andere Funktionen funktionieren auf früheren Plattformen.Link zum Android Gradle Plugin Benutzerhandbuch
Link, um zu sehen, wie sich Quelle und Ziel unterscheiden
quelle
Vielleicht sind diese Antworten alt, aber mit den neuen Android Studios 1 gehen Sie wie folgt vor, um zu sehen, ob das Modul auf 1.7 (oder 1.6, wenn Sie es vorziehen) ausgeführt wird. 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" die Option 1.7 aus. OK klicken".
quelle
Sie können es in der neuen Android Studio-Version (0.8.X) ändern.
Datei-> Andere Einstellungen -> Standardeinstellungen -> Compiler (Erweitern Sie diese, indem Sie auf den Pfeil nach links klicken) -> Java-Compiler -> Hier können Sie die Version des Projektbytecodes ändern
quelle
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 zum Modul (unter dem SDK-Speicherort) gehen und die Quellkompatibilität entsprechend bearbeiten. (Hinweis: Dies gilt nur für das Android-Modul.)
quelle
Klicken Sie mit der rechten Maustaste auf Ihr Projekt> Moduleinstellung öffnen> Wählen Sie im Abschnitt "Projekteinstellung" die Option "Projekt"
Ändern Sie das Projekt-SDK auf den neuesten Stand (möglicherweise API 21) und die Projektsprachenstufe auf 7+
quelle
Derzeit unterstützt Android nicht Java 7, sondern 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, die nur Java bis Version 6 unterstützt. Wenn Sie die Systemanforderungen für die Entwicklung von Android-Apps überprüfen, heißt es auch dass mindestens JDK 6 benötigt wird (obwohl dies natürlich kein wirklicher Beweis ist, sondern nur ein Hinweis). Und das sagt so ziemlich das Gleiche wie ich. Wenn ich etwas Wesentlicheres finde, werde ich es hinzufügen.
Bearbeiten: Es scheint, dass Java 7-Unterstützung hinzugefügt wurde, seit ich diese Antwort ursprünglich geschrieben habe. Überprüfen Sie die Antwort von Sergii Pechenizkyi .
quelle
Verwenden Sie zum Erstellen immer die neueste SDK-Version:
Es hat keinen Einfluss auf das Laufzeitverhalten , bietet Ihnen jedoch die neuesten Programmierfunktionen.
quelle
Gehen Sie in Ihren Gradle und suchen Sie nach sourceCompatibility und ändern Sie ihn von 1.6 auf 7 . Das hat zumindest bei mir funktioniert.
Sie können auch in Ihre Moduleinstellungen gehen und die Quell- / Zielkompatibilität auf 1.7 einstellen .
Moduleinstellungsfenster
Dadurch wird der folgende Code in Ihrem Gradle erzeugt:
quelle