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?
- TabLayout se bloquea después de actualizar la biblioteca de soporte a 23.2.1
- Realizar bucle en la lista android
- ¿Cómo usar googletest para probar el código C ++ que llama a java en android?
- Cómo establecer programaticamente drawableLeft en el botón de Android?
- ¿Cómo inflar un diseño dinámicamente?
¿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?
- Ver el almacenamiento en caché de encabezados y pies de página en una vista de lista
- Cómo superponer una imagen o una vista encima de una cámara capturada imagen
- IInAppBillingService.java no genera archivos Java en Android Studio
- Agregar elementos a un conjunto <String> en el orden correcto Java
- Java.lang.RuntimeException: No se puede instanciar la actividad ComponentInfo después de la actualización de SDK
- El método de archivo mkdirs () no funciona en android / java
- ¿Qué está pasando con mi actividad de cajón de navegación de Android?
- Gradle: No se pudo crear el complemento de tipo AppPlugin
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.
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.