valid the studio not jdk jbrain intellij idea home for configurar java intellij-idea gradle android-studio java-7

java - the - Cómo establecer-source 1.7 en Android Studio y Gradle



jetbrains android studio (8)

Último Android Studio 1.4.

Haga clic en Archivo-> Estructura del proyecto-> Ubicación del SDK-> Ubicación del JDK.

También puede establecer la compatibilidad de la Versión JDK del módulo individual yendo al Módulo (debajo de la Ubicación del SDK) y editando la Compatibilidad de la Fuente en consecuencia. (nota, esto solo se aplica al Módulo Android).

Recibo un error de seguimiento al intentar compilar mi proyecto en Android Studio:

Gradle: error: diamond operator is not supported in -source 1.6

Tengo 1.7 establecido como objetivo en todas las preferencias del proyecto que he encontrado. Además, la ruta que se muestra en SDK del proyecto en 1.7 SDK es la ruta correcta a la instalación de Java 1.7.

Incluso cuando ejecuto java -version en la terminal, me dice que me estoy ejecutando en Java 1.7.

He intentado configurar la variable env JAVA_HOME a esto:

/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home

El error no desaparece ¿Cómo elimino el error?


El soporte de Java 7 se agregó a las herramientas de compilación 19. Ahora puede usar características como el operador de diamante, captura múltiple, try-with-resources, cadenas en switches, etc. Agregue lo siguiente a build.gradle .

android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 7 targetSdkVersion 19 } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } }

Se requieren Gradle 1.7+, Android gradle plugin 0.6. +.

Tenga en cuenta que solo se prueba con recursos que requieren minSdkVersion 19. Otras funciones funcionan en plataformas anteriores.

Enlace a la guía del usuario de Android gradle plugin

Enlace para ver cómo la fuente vs el objetivo son diferentes


En la actualidad, Android no es compatible con Java 7, solo Java 6. Por lo tanto, las nuevas características en Java 7, como la sintaxis de diamante, no son compatibles. Encontrar fuentes para respaldar esto no es fácil, pero podría encontrar que el motor Dalvic está basado en un subconjunto de Apache Harmony que solo admitió Java hasta la versión 6. Y si comprueba los requisitos del sistema para desarrollar aplicaciones de Android también indica que al menos se necesita JDK 6 (aunque esto, por supuesto, no es una prueba real, solo una indicación). Y this dice más o menos lo mismo que tengo. Si encuentro algo más importante, lo agregaré.

Editar: Parece que se ha agregado el soporte de Java 7 desde que originalmente escribí esta respuesta; verifique la respuesta de Sergii Pechenizkyi .


Haga clic derecho en su proyecto> Abrir configuración del módulo> Seleccione "Proyecto" en la sección "Configuración del proyecto"

Cambie el Project SDK a la última (puede ser API 21) y el nivel de idioma del proyecto a 7+


Puedes cambiarlo en la nueva versión de estudio de Android (0.8.X)

FILE-> Other Settings -> Default Settings -> Compiler (Expandir haciendo clic en la flecha izquierda) -> Java Compiler -> Puede cambiar la versión del bytecode del proyecto aquí


Quizás estas respuestas anteriores sean antiguas, pero con los nuevos Android Studios 1, haga lo siguiente para ver que el módulo se ejecute en 1.7 (o 1.6 si lo prefiere). Haga clic en Archivo -> Estructura del proyecto. Seleccione el módulo que desea ejecutar y luego en "Compatibilidad de origen" y "Compatibilidad de destino", seleccione 1.7. Haga clic en Aceptar".


Utilice siempre la última versión de SDK para compilar:

compileSdkVersion 23

No afecta el comportamiento del tiempo de ejecución , pero le brinda las últimas funciones de programación.


Vaya a su Gradle y busque sourceCompatibility y cámbielo de 1.6 a 7 . Eso funcionó para mí al menos.

También puede acceder a la configuración de su módulo y establecer la compatibilidad de origen / destino en 1.7.

Ventana de configuración del módulo

Eso producirá el siguiente código en tu Gradle:

compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 }