Der languageLevel-Schlüssel wird aus mir unbekannten Gründen von JDK_1_8 in JDK_1_7 geändert.
Was könnte los sein?
Hat dies etwas mit der IDE anderer Entwickler zu tun, die an dem Projekt arbeiten? Vielleicht haben sie eine andere Android Studio-Einstellung?
Folgendes wird angezeigt, nachdem ich festgestellt habe, dass sich Dateien unter Quellcodeverwaltung geändert haben:
$ git diff
diff --git a/.idea/misc.xml b/.idea/misc.xml
index fbb6828..5d19981 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
- <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
Dies ist mein Gitignore, falls es darauf ankommt.
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
Wie gehe ich vor, damit es nur so oder so bleibt?
java
android
android-studio
Kraftydevil
quelle
quelle
.gitignore
, und diese Problemumgehung widerspricht dem . Sie verlieren die Möglichkeit, Projekteigenschaften für alle Entwickler freizugeben, z. B. Inspektionen / Fluseneinstellungen, mit denen wir einige Standardfehler verhindern, bevor Sie überhaupt mit der Codeüberprüfung beginnen. Sie können einfach/.idea/misc.xml
zur.gitignore
Datei hinzufügen , um dies zu lösen.Antworten:
Das machte mich eine Weile verrückt. Ich konnte es beheben, indem ich die Java-Version explizit in meinem
build.gradle
:Beachten Sie , wenn Sie verwenden
VERSION_1_7
, wenn Sie Android Studio oder Switch in ein anderes Projekt starten , kalt , dass AnwendungenVERSION_1_8
, es ändern wird.idea/misc.xml
zu verwendenJDK_1_8
. Wenn Sie eine Gradle-Synchronisierung durchführen, wird diese wieder verwendetJDK_1_7
. Wenn Sie verwendenVERSION_1_8
, tritt dieses Problem nicht auf.Es ist nicht perfekt, aber ich fand das vorerst gut genug.
quelle
Kam nach dem Update auf Android Studio 2.2 von Google hierher. Dies kann für andere hilfreich sein.
Seit Android Studio 2.2 ist das JDK im Lieferumfang enthalten, anstatt dass Sie es herunterladen und auf Ihrem System installieren müssen. Mein Projekt JDK begann zu wechseln, als ich auf 2.2 aktualisierte, möglicherweise aufgrund der Verwechslung zwischen den beiden jetzt verfügbaren Versionen - System und Embedded.
Wenn Sie auf der Registerkarte SDK-Speicherort unter Datei> Projektstruktur (Mac OS) zu Datei gehen, befindet sich der JDK-Speicherort. Es gibt jetzt eine neue Einstellung für die Verwendung des eingebetteten JDK. Sobald ich darauf umgestiegen bin, hat es mein Problem gelöst.
quelle
Es scheint, dass die Datei unter Versionskontrolle gespeichert werden sollte . Ich würde vorschlagen, es in Git zu halten, aber alle lokalen Änderungen ignorieren:
Beim Wechseln der Zweige kann es zu Konflikten in diesen Dateien kommen. Dann können Sie das folgende imlreset- Skript verwenden, um die Dateien zurückzusetzen:
Erstellen Sie ein ähnliches Skript, um diese Dateien zu ignorieren, wenn Sie dies häufig tun.
quelle
Ich habe dieses Problem gelöst, als ich den .idea-Ordner entfernt und nicht mehr für die Quellcodeverwaltung festgeschrieben habe.
Das Problem ist, dass einige dieser Dateien maschinenspezifische Konfigurationen sind, sodass die Freigabe ein Problem darstellen kann.
Das Entfernen und anderer fehlerhafter Dateien war ein zweistufiger Git-Prozess:
1) Fügen Sie diesen .gitignore hinzu (von https://stackoverflow.com/a/32942758/869936 ):
2) Führen Sie für jede Zeile des Gitignore
git rm line
die Befehlszeile aus.Beispiel:
Fügen Sie die Änderungen hinzu und übernehmen Sie sie
Jetzt werden diese Dateien beim Öffnen des Android Studio-Projekts generiert und nicht zu git hinzugefügt.
quelle
.idea
Ordners festschreiben , da diese außer und nicht maschinenspezifisch sind . Abgesehen davon ist es in Bezug auf die Versionskontrolle aufgrund solcher Probleme nicht sehr gut durchdacht. Ich denke, sie werden das Chaos irgendwann klären.workspace.xml
tasks.xml