com.android.build.gradle.internal.model.ApiVersionImpl no se puede transmitir a java.lang.Integer mientras migra el proyecto AS a IDEA

Necesitaba migrar de Android Studio a IntelliJ IDEA ya que necesitaba hacer algún otro trabajo que no fuera Android en Java. Cloné mi proyecto de git y lo importé en IDEA; sin embargo, encontré un error con Gradle en el proceso. He buscado, pero no he podido encontrar una respuesta que corrija mi error.

Aquí está el registro de eventos

03:39:42 PM All files are up-to-date 03:39:42 PM ClassCastException: com.android.build.gradle.internal.model.ApiVersionImpl cannot be cast to java.lang.Integer: com.android.build.gradle.internal.model.ApiVersionImpl cannot be cast to java.lang.Integer 

El settings.gradle (myproject es un ejemplo para SO, quiere omitir el nombre real)

 include ':myproject' 

El build.gradle en el directorio raíz (por ejemplo, /myproject/build.gradle)

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.12.+' } } allprojects { repositories { mavenCentral() } } 

y el otro build.gradle (por ejemplo, /myproject/myproject/build.gradle)

 apply plugin: 'android' android { compileSdkVersion 19 buildToolsVersion '20' defaultConfig { minSdkVersion 14 targetSdkVersion 19 versionCode 1 versionName '1.0' } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } debug { versionNameSuffix "-alpha" } } productFlavors { } packagingOptions{ exclude 'META-INF/DEPENDENCIES.text' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.readystatesoftware.systembartint:systembartint:1.0.3' compile 'commons-validator:commons-validator:1.4.0' } 

Supongo que es algo que pertenece a la versión Gradle o incompatibilidades entre Studio e IDEA, pero no estoy seguro. Apreciaría mucho una respuesta. Gracias.

Creo que es porque su proyecto Gradle es demasiado nuevo para la versión del complemento de Android que IntelliJ IDEA envía con.

Hay un par de soluciones posibles:

Puede intentar degradar la versión del complemento Android Gradle en el archivo de compilación hasta que llegue a una versión con la que trabajará. Esto se encontrará con problemas si se mueve hacia atrás hasta el momento que otras partes de ella son incompatibles. Para ello, reduzca el número de versión en la línea:

  classpath 'com.android.tools.build:gradle:0.12.+' 

Sin embargo, si lo hace, sepa que este archivo de compilación no será compatible con las versiones modernas de Android Studio. No hay una buena solución para esto en este momento.

Otro enfoque sería probar el IntelliJ 14 EAP, que probablemente tendrá una versión posterior del complemento. Tenga en cuenta que IntelliJ 14 todavía está en una fase muy activa de su ciclo de desarrollo, y es probable que haya errores. Úselo bajo su propio riesgo. http://confluence.jetbrains.com/display/IDEADEV/IDEA+14+EAP

Long-winded explicación:

Hay muchas piezas diferentes en el trabajo:

  1. Su archivo de compilación
  2. El complemento de Android para Gradle
  3. El complemento de Android para IntelliJ, que se utiliza tanto por:
  4. Android Studio y
  5. IntelliJ IDEA

El plugin en # 3 es el mismo plugin para Android Studio e IntelliJ, pero el problema es que está evolucionando muy rápidamente, y Android Studio está en un horario de lanzamiento mucho más rápido, y cada lanzamiento viene con el código más reciente. IntelliJ IDEA está en un horario de lanzamiento menos frecuente, y para ser honesto, no estoy completamente seguro de qué complemento de Android se incluye; No he mirado su estrategia de ramificación.

También evoluciona rápidamente el complemento de Android para Gradle. Muchas veces, esto se mueve en lockstep con nuevas versiones de Android Studio; para soportar las nuevas características que necesitamos en Android Studio, los usuarios necesitan una versión mínima más nueva del complemento Gradle y viceversa, por lo que a menudo se han realizado migraciones forzadas de la versión del complemento en el pasado.

Así que lo que está sucediendo es que su archivo de compilación necesita una versión reciente del complemento Android Gradle, que necesita una versión reciente del complemento de IntelliJ para Android, que se envía en Studio pero no en la versión actual de IJ 13.

Las cosas se están asentando, por lo que esperamos que esto mejore en el futuro. En particular, la versión 1.0 del complemento Android Gradle funcionará en todas las plataformas y será compatible con futuras versiones de todos los productos durante mucho tiempo, si no siempre.

Tienes que usar la versión anterior de las herramientas de Android. La versión 0.10. + Funciona con Idea 13

Así que acaba de poner

 classpath 'com.android.tools.build:gradle:0.10.+' 

Desafortunadamente esto no funcionará con Android Studio ni Idea 14 EAP, y si tienes compañeros de trabajo trabajando en el mismo proyecto no hay una buena solución.

La opción es continuar usando Idea 13 con las versiones de la versión 0.10. O de la versión para Android, o migrar a EAP y / o Android y comenzar a usar la versión 0.11 + de las herramientas de Android. 🙁 NOTA: 0.12. + No funcionará con Idea 14 EAP

O puede intentar introducir la solución que usamos en el equipo mientras esto no se estabiliza:

En settings.gradle add

 boolean fromIdea14 = System.properties["idea.version"]?.toString().equals("14") org.gradle.api.internal.initialization.DefaultScriptHandler.metaClass.toolsVersion = fromIdea14 ? "0.11.+" : "0.10.+" 

Entonces en build.gradle

 buildscript { repositories { mavenCentral() } dependencies { classpath group: 'com.android.tools.build', name: "gradle", version: getBuildscript().toolsVersion } } 

Esto funcionará para todo el mundo usando Idea 13 y para los chicos que utilizan 14 EAP o AndroidStudio deben agregar a los argumentos de Gradle VM -Didea.version = 14 .

Nota: Parece que Idea no evalúa la secuencia de comandos para configurar proyectos android invocando gradle por sí mismo para obtener otra propiedad o variable env no funcionará 🙁 La única manera es especificar gradle argumento VM en la configuración.

  • Android Studio - Importar biblioteca externa / Jar
  • Android Studio - Todos los nombres de archivo en el proyecto son de color rojo, pero no hay errores
  • ¿Hay algún soporte IDE para crear Cordova Plugins?
  • ¿Cómo puedo ver las tareas de Gradle de Android en Android Studio?
  • Cómo bajar la versión proguard en androide gradle estudio?
  • Sabores de un proyecto
  • No puedo conectar android-support-v7-appcompat a mi proyecto
  • Emulador no muestra la pantalla de inicio después de esperar más de la mitad de la hora
  • ¿Cómo mover las variables estáticas de una clase a otra cuando refactore en IntelliJ o Android Studio?
  • Error: Gradle: la ejecución falló para la tarea ': app: preDexDebug'
  • IntelliJ + git + submódulos -> ¿Dónde se coloca el .iml?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.