La etiqueta languageLevel de Android .idea / misc.xml sigue cambiando JDKs

La clave languageLevel se cambia de JDK_1_8 a JDK_1_7 por razones que no conozco.

¿Qué podría estar pasando?

¿Tiene esto algo que ver con el IDE de otros desarrolladores que trabajan en el proyecto? Tal vez tienen otra configuración de Android Studio?

Aquí es lo que aparece después de notar que los archivos bajo control de código fuente han cambiado:

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

Este es mi gitignore en caso de que importe.

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

¿Cómo proceder para que se mantenga de una manera u otra?

Vino aquí de Google después de actualizar a AS 2.2. Esto puede ser útil para otros.

Desde Android Studio 2.2, el JDK ha sido incluido con él. En lugar de tener que descargarlo y instalarlo en su sistema. Mi proyecto JDK comenzó a cambiar cuando actualizé a 2.2, posiblemente debido a la confusión entre las dos versiones disponibles ahora. Sistema y embebido.

Si entra en Archivo> Estructura del proyecto (Mac OS), en la pestaña Ubicación del SDK hay una ubicación JDK. Ahora hay un nuevo ajuste para utilizar el JDK incorporado, una vez que cambié a él, resolvió mi problema.

Introduzca aquí la descripción de la imagen

Esto me estaba volviendo loco por un tiempo. Pude corregirlo estableciendo explícitamente la versión java en mi build.gradle :

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

Tenga en cuenta que si utiliza VERSION_1_7 , cuando inicie en frío Android Studio o cambie a otro proyecto que utilice VERSION_1_8 , modificará .idea/misc.xml para utilizar JDK_1_8 . Hacer una sincronización gradle lo volverá a usar JDK_1_7 . Si utiliza VERSION_1_8 , no tendrá este problema.

No es perfecto, pero he encontrado que esto es lo suficientemente bueno por ahora.

Parece que el archivo debe ser almacenado bajo control de versiones . Propondría mantenerlo en git, pero ignoraría todos los cambios locales:

 git update-index --assume-unchanged .idea/misc.xml 

Al cambiar de rama puede haber conflicto en estos archivos. A continuación, puede utilizar la siguiente secuencia de comandos imlreset para restablecer los archivos:

 #!/bin/bash while read f do [ -f $f ] && git checkout $f done <<! app/app.iml wear/wear.iml ! 

Cree una secuencia de comandos similar para ignorar estos archivos si lo hace con frecuencia.

Solucioné este problema cuando quité y dejé de comprometer la carpeta .idea al control de código fuente.

El problema es que algunos de estos archivos son configuraciones específicas de la máquina así que compartirlas podría ser un problema.

Quitarlo y otros archivos ofensivos fue un proceso de dos pasos git:

1) Agregue esto .gitignore (de https://stackoverflow.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) Para cada línea de .gitignore, ejecute la git rm line desde la línea de comandos.

Ejemplo:

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

Añadir y confirmar los cambios

Ahora estos archivos se generarán cuando abra el proyecto de Android Studio y no se agregarán a git.

  • Depuración de archivos de compilación de Gradle en Intellij / Android Studio
  • ¿Cómo obtener la vista de un elemento en listview en android?
  • ¿Cómo puede convertir el archivo XML local a org.ksoap2.serialization.SoapObject?
  • Linkedin Android SDK - No se puede conectar a la API (INVALID_REQUEST)
  • Android studio auto complete: cómo mostrar constructores con parámetros
  • OnCreateView Fragmento no llamado
  • ¿Cómo evitar que ProgressDialog descarte el cambio de rotación de la pantalla en Android?
  • Función Sleep en el programa android
  • ¿Se garantiza que init estática NO se ejecute si no se accede a la clase?
  • Análisis de RSS en Android
  • Fondo alfa en FAB hecho clic
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.