Android N erfordert, dass die IDE mit Java 1.8 oder höher ausgeführt wird?

117

Mein XMLLayout wird mit dieser Fehlermeldung nicht gerendert. Ich benutze bereits Java 8.

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie auch die neuesten Build-Tools in Gradle.

android {
    compileSdkVersion 'android-N'
    buildToolsVersion 24.0.0 rc1
    ...
}

XML-Fehler -

Geben Sie hier die Bildbeschreibung ein

mjosh
quelle
2
Es gibt alle möglichen Renderprobleme mit Android Studio. Ich schlage vor, dass Sie ein minimal reproduzierbares Beispiel angeben . In diesem Fall würde dies die Layoutdatei und den spezifischen Fehler einschließen.
CommonsWare
@ CommonsWare Ich habe das XML-Fehlerbild aktualisiert. Durch die Installation eines unterstützten JDK wurde ich umgeleitet, um Schritte einzurichten, die ich bereits ausgeführt habe.
Mjosh
1
Ich musste zu buildToolsVersion '24 .0.0 rc1 'wechseln, in der Dokumentation fehlten die Anführungszeichen.
Phyrum Tea
@PhyrumTea Der Fehler wurde nicht behoben.
Mjosh
1
Als ich schließlich versuchte, das Projekt zu erstellen und auszuführen, schlug es mit fehl Directory cannot have its readable permission cleared for everybody. Anscheinend ist es ein bekannter Fehler und Google arbeitet daran.
Mjosh

Antworten:

187

Ich habe den gleichen Fehler erhalten, den Sie beschreiben, aber unter OS X. Ich weiß, dass dies Ihr Problem möglicherweise nicht löst (weil ich das Äquivalent für Windows nicht kenne), aber da dies nicht betriebssystemspezifisch ist, überlasse ich die Lösung jedem OS X-Kollegen dort draußen. Bearbeiten Sie die Datei /Applications/Android\ Studio.app/Contents/Info.plistund entfernen Sie die Version 1.6 (in meinem Fall). Sie können 1.6+, 1.7+ oder 1.8 platzieren, je nachdem, was Sie bevorzugen. Meins endete so

...
<key>JVMVersion</key>
<string>1.7+</string>
...

Beachten Sie, dass es eine Inkompatibilität mit Drag & Drop mit den Java-Versionen 1.8_60 bis 1.8_75 ( IDEA-146691 ) gibt, die die IDE meldet, sobald Sie die Version erfolgreich geändert haben.

Für Nicht-Terminal-Benutzer

  1. Finden Sie Ihre Android Studio.appDatei. Wenn es sich im Dock befindet, können Sie mit der rechten Maustaste darauf klicken und auswählen Options > Show in Finder.
  2. Klicken Sie mit der rechten Maustaste darauf und wählen Sie Show package content.
  3. Navigieren Sie zu der genannten Datei ( Contents/Info.plist).
  4. Bearbeiten Sie die Datei mit Ihrem bevorzugten Texteditor.
LaloLoop
quelle
11
Dadurch wird die virtuelle Maschine geändert, auf der Android Studio ausgeführt wird. In meinem OSX war der ursprüngliche Wert: <key> JVMVersion </ key> <string> 1,6 *, 1,7 +, 1,8 </ string> Und der neue Wert ist: <key> JVMVersion </ key> <string> 1,8 </ Zeichenfolge>
Santhyago
8
Es klappt! Danke für diese Lösung. Die Frage ist: Warum möchte Google, dass seine Entwickler seine Zeit mit diesen Themen verschwenden?
Kotik_o
3
Vielen Dank für die Behebung des Mangels an Dokumentation bei Google :). Ich frage mich, warum diese Anweisung nicht hier ist: developer.android.com/intl/pt-br/preview/setup-sdk.html#java8 (Dies ist der Link, der in Android Studio angezeigt wird).
Totalys
7
Funktioniert super!! Leider wird beim Aktualisieren von Android Studio (was ich gerade auf die neueste Version getan habe) die Datei Info.plist zurückgesetzt, sodass ich die Schritte erneut wiederholen muss, um meine JVMVersion zu ändern: <key>JVMVersion</key> <string>1.8</string>So nerviges Android Studio!
Micro
3
Android Studio 2.2 verwendet <string> 1.8 *, 1.8 + </ string>.
jmnwong
147

Klicken Sie auf den Buchstaben N neben dem Android-Symbol im Vorschaufenster und wählen Sie API-Level 23 oder niedriger. Das sollte es lösen.

Erste Reihe von Symbolen im Ansichtsfenster

Ian
quelle
25
Aber ich möchte eine Vorschau in N nicht in API 23
anzeigen
3
Ich habe das gleiche Problem auf meinem Mac festgestellt. Das Verringern der API-Ebene von 24 auf 23 hat bei mir funktioniert.
Salman
3
Keine
Dies ist keine Antwort. Dies ignoriert nur die Problemumgebung.
Enadun
Schön gemacht. Ja, es hat mein Problem gelöst. Danke dir. :)
arango_86
63

Set- JDK_HOMEund JAVA_HOMEUmgebungsvariablen in meinem Fall C:\Program Files\Java\jdk1.8.0_60.

Geben Sie hier die Bildbeschreibung ein

Überprüfen Sie die Java-Version in Help > About. Es sollte die gerade eingestellte JRE-Version anzeigen.

Geben Sie hier die Bildbeschreibung ein

Jetzt können Sie eine Vorschau Ihres Layouts anzeigen N.

mjosh
quelle
1
Ich habe getan, was du gesagt hast, aber wenn ich helfe, zeigt es immer noch auf mein altes JDK. Warum ist das so?
The_Martian
1
Ich habe JRE: 1,8 (in ungefähr). Ich kann jedoch keine Apps für v24 erstellen. > compileSdkVersion 'android-24' requires JDK 1.8 or later to compile.
Zapnologica
1
@The_Martian Sie müssen Ihren Computer neu starten.
Squeeish
1
Auf Mac Os entferne ich meine alte JDK-Version. Danach
wählt
1
@ lopez.mikhael das ist eigentlich das einzige was am ende für mich funktioniert hat. Ich änderte jede mögliche Einstellung, die ich finden konnte, konfigurierte alles genau so, wie ich es sollte, und bekam immer wieder den Fehler. Am Ende habe ich die älteren JDK-Verzeichnisse in ein Unterverzeichnis namens old_jdks im Ordner JavaVirtualMachine verschoben. Jetzt funktioniert alles super.
zgc7009
27

Für Mac-Benutzer mit diesem Problem (ich verwende OS X 10.11.5 und Android Studio 2.1.2) können Sie es folgendermaßen lösen:

Derzeit wird die Mac-Version von Android Studio mit Java 6 ausgeführt (nicht unbedingt mit der JDK-Version für die App identisch), da Java 6 eine bessere Schriftwiedergabe als Java 7 und 8 bietet und dies anscheinend wichtiger ist als das Rendern Ihres Layouts.

Stellen Sie zunächst sicher, dass JDK 8 installiert ist .

Führen Sie dann die folgenden Befehle aus:

$ export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk
$ open /Applications/Android\ Studio.app/

Möglicherweise müssen Sie den Eingang 91in jdk1.8.0_91.jdkeine andere Version ändern . Sie können sehen, mit welchen JDK-Versionen Sie arbeiten:

$ ls /Library/Java/JavaVirtualMachines/

Leider erfordert diese Methode das Öffnen der App vom Terminal aus, aber Sie können jederzeit ein Skript dafür erstellen.

Mehr Info

Bearbeiten: Und wenn Sie es wirklich nicht vom Terminal aus öffnen wollen:

  1. Erstellen Sie ein AppleScript mit Inhalten: do shell script "export STUDIO_JDK=/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk; open /Applications/Android\\ Studio.app/"
  2. Datei> Speichern Wählen Sie das Dateiformat Anwendung . Speichern Sie es irgendwo.
  3. Wenn Sie das Symbol ändern möchten, klicken Sie hier.
  4. Ziehen Sie die App auf Ihr Launchpad, wenn Sie möchten.
Wumbo
quelle
Wenn ich versuche, das Skript auszuführen, wird Folgendes angezeigt: Wie kann ich das Problem error "sh: /usr/local/bin/studio: No such file or directory" number 127beheben? Wenn ich es vom Terminal aus
Daniele
@ Daniele Sorry, ich habe vergessen, dass ich dafür ein anderes Shell-Skript erstellt habe. Das AppleScript sollte die gleichen Befehle wie oben haben. Siehe meine aktualisierte Antwort.
Wumbo
5

Ich habe das gleiche Problem getroffen.

Ich habe jdk1.6, jdk1.7, jdk1.8 installiert und Studio so bereitgestellt, wie Sie es getan haben.

Meine Lösung ist jdk1.6 und jdk1.7 deinstallieren, nur jdk1.8 verlassen

sudo rm -rf ${path to jdk1.6}
sudo rm -rf ${path to jdk1.7}

Das ist alles.

Youngwind
quelle
ist das sicher zu tun
Micro
@MicroR Wenn Sie die andere Software nicht von jdk1.6 und jdk1.7 abhängig gemacht haben, denke ich, dass es sicher ist.
Youngwind
Diese Lösung hat das Problem für mich behoben. Diese Art der Deinstallation ist sicher und wird von Oracle empfohlen ( docs.oracle.com/javase/8/docs/technotes/guides/install/… )
Showpath
2

Ich verwende Ubuntu 14.04 und hatte einen ähnlichen Fehler, mit dem Unterschied, dass ich kein NDK habe. Meine Lösung bestand darin, nach dem Einrichten von Java 8 in der Projektdefinition Android Studio nicht mehr neu zu starten.

Überprüfen Sie die Java-Version des Systems. In der Konsole "Java-Version" sollte die Ausgabe ungefähr so ​​lauten

java version "1.8.0_91"
Sergio A Guzmán
quelle
Ich habe JAVA_HOME = "/ Library / Java / JavaVirtualMachines / jdk1.8.0_91.jdk / Contents / Home" festgelegt. Sollte STUDIO_SDK auch "/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home" sein?
mythicalcoder
@Maven Theoretisch können Sie die Variable STUDIO_SDK festlegen, die der SDK-Pfad für die Ausführung von Android Studio ist (wie in den Konfigurationsparametern tools.android.com/tech-docs/configuration von Studio angegeben ). In meinem Fall habe ich diese Variable jedoch nicht festgelegt und die IDE wird wie erwartet ausgeführt.
Sergio A Guzmán
Du hast recht. Ich habe verschiedene Dinge ausprobiert. Es war in der Tat das Problem von 1.8 nicht richtig verknüpft. Dies löste es stackoverflow.com/a/35935433/2369867 . Vielen Dank.
mythicalcoder
2

Hatte das gleiche Problem mit Ubunutu. Das Problem bestand darin, die IDE nicht mit Java8 auszuführen.

Ich habe es mit der Aktualisierung des Standard-Java-Programms des Betriebssystems behoben, indem ich:

sudo update-alternatives --config java

Und wählen Sie den entsprechenden Java8-Pfad.

danny11
quelle
1

Ich hatte das Problem "Für Android N muss die IDE mit Java 1.8 oder höher ausgeführt werden." Der Fehler wurde trotz der Einstellung C:\Program Files\Java\jdk1.8.0_92als JDK des Projekts weiterhin angezeigtFile > Project Structure .

Ich habe es gelöst, indem ich JAVA_HOME in meinen Umgebungsvariablen von C:\Program Files\Java\jdk1.7.0_67auf aktualisiert habeC:\Program Files\Java\jdk1.8.0_92 . Als ich das tat und Android Studio neu startete, wurde der Designmodus verfügbar.

Betriebssystem: Windows 10

Android Studio: 2.1.2

Maksim Dmitriev
quelle
1

Ich habe es auf diese Weise gelöst. (AS + MAC OX El Capitan)

  1. Aktualisieren der SDK-Tools> Android SDK-Plattform-Tools
  2. Gehen Sie zu Hilfe> Benutzerdefinierte Eigenschaften bearbeiten> Ein Dialogfeld fordert Sie auf (drücken Sie Ja) und schreibt dann

    JVMVersion=1.8 

Schließen Sie dann Android Studio vollständig und laden Sie das Projekt neu

Milon
quelle
0

Mein Problem war, dass Android N "teilweise installiert" war.

Meine Lösung bestand darin, unter - Einstellungen / Aussehen und Verhalten / Systemeinstellungen / Android SDK den Status zu überprüfen. Wenn es "teilweise installiert" ist, müssen Sie es deinstallieren und dann neu installieren. (Deaktivieren Sie das Kontrollkästchen und klicken Sie auf Übernehmen. Es wird deinstalliert. Dann können Sie das Kontrollkästchen aktivieren und erneut installieren.) Hat bei mir funktioniert. Wenn Sie zu einer niedrigeren Version (wie 23) wechseln, müssen Sie die Variable buildToolsVersion im build.gradle in "23.0.0" ändern.

tiborK
quelle
1
Meins sagt nach der Neuinstallation immer noch "teilweise installiert".
Andrew
Meins auch "teilweise installiert" nach der Neuinstallation. @ Andrew hast du danach eine Lösung gefunden?
mythicalcoder
@Maven stellte sich für mich heraus, dass mein Problem darin bestand, dass ich beim Erstellen der App nicht die richtige Build-Variante ausgewählt hatte.
Andrew
0

Ich hatte kürzlich das gleiche Problem. Versuchen Sie, die API-Vorschau auf 23 oder niedriger zu ändern. Das hat bei mir funktioniert.


quelle
0

Ich hatte das gleiche Problem. Stellen Sie sicher, dass Sie das XML-Layout für die kompilierte SDK-Version rendern (darf nicht größer sein). Dies bedeutet, dass Sie sich dem stellen müssen, wenn Sie den Code mit Targeted SDK Version 23 kompilieren und versuchen, das XML in SDK Version 24 zu rendern.

Muhamed Riyas M.
quelle
0

Beim Festlegen von STUDIO_JDK unter Mac OS sind einige Dinge zu beachten:

  • Standardmäßig wird Java 1.6 von Apple zum Starten von Android Studio verwendet
  • Wenn STUDIO_JDK auf Oracle Java eingestellt ist, wird es vom Android Studio zur Ausführung verwendet

Der Unterschied zwischen zwei besteht darin, dass Apples Java IMO ein besseres und besseres Antialiasing für Schriftarten in der IDE bietet.

Eine Antwort hier bezieht sich auf einen Fehler in Android Studio bezüglich des Antialiasing von Schriftarten. Das Ticket ist bereits geschlossen, aber das Rendern ist für Apple Java und Oracle SDK unterschiedlich (ich habe v1.8.0_102). Und der erstere hat immer noch eine bessere Wahrnehmung als der letzte.

Mykola
quelle
0

Versuchen Sie, in Projekt Java 1.8 zu verwenden - laden Sie die letzte Version von JDK herunter und installieren Sie sie (wenn JSK fehlt)

Fügen Sie dann diese Zeilen zu build.gradle hinzu android {... // Nur für jedes Modul konfigurieren, das Java 8 // Sprachfunktionen verwendet (entweder im Quellcode oder // über Abhängigkeiten). compileOptions {sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8} // Für Kotlin-Projekte kotlinOptions {jvmTarget = "1.8"}}

Alexander
quelle
-1

machine: windows8 64bit in meinem Fall war das von mir installierte jdk1.7 32bit, daher habe ich studio.exe (32bit) verwendet. Selbst wenn ich das neue jdk1.8 (64bit) heruntergeladen habe, konnte die von mir verwendete Studioinstanz (32bit) nicht verwendet werden. ' Ich habe es nicht erkannt, aber als ich das ältere JDK deinstallierte und versuchte, studio.exe erneut auszuführen, wurde mir gesagt, ich solle ein 32-Bit-JDK installieren. Also habe ich studio64.exe ausgeführt und es lief reibungslos. Stellen Sie sicher, dass Sie den richtigen Pfad in Ihren Umgebungsvariablen haben. Prost Android N.

Peterstev Uremgba
quelle
-1

Stellen Sie sicher, dass Sie jdk für x64 und nicht x84 installiert haben, wenn Sie Android Studio (x64) starten.

Geben Sie hier die Bildbeschreibung ein

user1564762
quelle