java - tools - sdk




Il tag languageLevel di Android.idea/misc.xml continua a cambiare i JDK (3)

La chiave languageLevel viene modificata da JDK_1_8 a JDK_1_7 per motivi che non sono a conoscenza.

Cosa potrebbe succedere?

Questo ha qualcosa a che fare con l'IDE di altri sviluppatori che lavorano al progetto? Forse hanno un'altra impostazione di Android Studio?

Ecco cosa appare dopo che ho notato che i file sotto il controllo del codice sorgente sono cambiati:

$ 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">

Questo è il mio gitignore nel caso in cui sia importante.

.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures

Come posso procedere in modo che rimanga solo in un modo o nell'altro?


Ho risolto questo problema quando ho rimosso e smesso di eseguire il commit della cartella .idea per il controllo del codice sorgente.

Il problema è che alcuni di questi file sono configurazioni specifiche della macchina, quindi condividerli potrebbe essere un problema.

Rimuoverlo e altri file offensivi è stato un processo git in due passaggi:

1) Aggiungi questo .gitignore (da https://.com/a/32942758/869936 ):

#built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Local configuration file (sdk path, etc)
local.properties

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

# Eclipse project files
.classpath
.project

# Android Studio
*.iws
*.iml
.idea
.gradle
build/
*/build/

2) Per ogni riga di .gitignore, esegui git rm line dalla git rm line di comando.

Esempio:

$ git rm *.iws
$ git rm *.iml
$ git rm .idea
$ git rm .gradle
$ git rm build/
$ git rm */build/

Aggiungi e impegna le modifiche

Ora questi file verranno generati quando apri il progetto Android Studio e non verranno aggiunti a git.


Questo mi ha fatto impazzire per un po '. Sono stato in grado di risolverlo impostando esplicitamente la versione java nel mio build.gradle :

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

Nota che se stai utilizzando VERSION_1_7 , quando VERSION_1_7 Android Studio a freddo o passi a un altro progetto che utilizza VERSION_1_8 , modificherà .idea/misc.xml per usare JDK_1_8 . Effettuare una sincronizzazione graduale ripristinerà l'utilizzo di JDK_1_7 . Se stai utilizzando VERSION_1_8 , non avrai questo problema.

Non è perfetto ma ho trovato questo abbastanza buono per ora.


Sono venuto qui da Google dopo l'aggiornamento ad Android Studio 2.2. Questo potrebbe essere utile per gli altri.

Da Android Studio 2.2, JDK è stato integrato con esso, invece di doverlo scaricare e installare sul tuo sistema. Il mio progetto JDK ha iniziato a cambiare quando ho aggiornato a 2.2, probabilmente a causa della confusione tra le due versioni disponibili ora: sistema e incorporato.

Se vai in File> Struttura del progetto (Mac OS), nella scheda Posizione SDK, c'è la posizione JDK. Ora c'è una nuova impostazione per usare il JDK incorporato. Una volta passato a questo, ha risolto il mio problema.







android-studio