Android build gradle es demasiado lento (Resolución de dependencia)

He estado trabajando con Android Studio (mi versión actual 1.5) durante 2 años. Todo estaba bien, pero cuando descargué Canary (2.1 p5), todo salió mal. Cada vez que quiero crear un nuevo proyecto o abrir un proyecto o sincronizar o importar una nueva lib o dependencia, gradle está tardando demasiado en construir, casi 20 minutos .

No hice nada, acabo de descargar la versión canaria y la ejecuté.

Síntomas:

  1. Sucedió cuando me conecté a Internet
  2. La primera demora está en Gradle: Resolver dependencias ‘: app: _debugCompile’
  3. Después de 25 minutos de construcción casi terminado

Nota : cuando desconecto mi Internet, gradle terminará lo más rápido posible


Traté de solucionar esto de estas maneras :

  1. Cambié el gradle al trabajo fuera de línea (funcionó, pero no quiero de esta manera, porque quiero importar libs o dependencias)
  2. He creado un nuevo archivo (el nombre del archivo es gradle.properties ) en C:\Users\username\.gradle luego escribí estas líneas en él

     org.gradle.parallel=true org.gradle.daemon=true 
  3. Quité esa versión y luego instalé mi versión anterior que funcionaba bien, pero el problema seguía allí 🙁

  4. Deshabilitar / habilitar el firewall

  5. Deshabilitar / Habilitar AntiVirus (Nod32)

  6. Reinstalar el sistema operativo Windows (8.1)

  7. He descargado todas las versiones (1.0.0, …, 1.5.1, 2.0.0, 2.1)

  8. He usado un proxy


Información del sistema :

  • CPU: Intel Core i5
  • Ram: 6.00 GB
  • Sistema operativo: Windows 8.1 de 64 bits

build.gradle (Proyecto: appName)

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 

gradle.build (Módulo: aplicación)

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.example.test.myapplication" minSdkVersion 14 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:23.3.0' } 

Gradle informe después de la construcción

 Dependencies Duration All dependencies 14m3.43s :app:_releaseCompile 3m30.96s :app:_debugCompile 3m30.73s :app:_debugApk 3m30.69s :app:_releaseApk 3m30.62s :classpath 0.428s :app:_debugAndroidTestCompile 0.001s :app:_debugAndroidTestApk 0s :app:_debugUnitTestApk 0s :app:_debugUnitTestCompile 0s :app:_releaseUnitTestApk 0s :app:_releaseUnitTestCompile 0s :app:releaseWearApp 0s :app:wearApp 0s 

Después de instalar la versión estable de android studio 2.0

  • 7:23:47 PM Sincronización de Gradle ====> 8:13:21 PM Sincronización de Gradle completada

El problema esta resuelto !

Después de 2 días de búsqueda, obtuve la solución, por lo que me gustaría compartirla con todas las personas que puedan tener el mismo problema. El problema es que gradle no se puede conectar al repository del centro en algún país. Cuando creas un nuevo proyecto o lo importas, tu repository central es jcenter() de manera predeterminada y siempre que quieras comstackr o sincronizar o agregar una nueva dependencia externa, gradle se va a conectar a https://bintray.com/ pero no puede y el proceso de construcción va a esperar hasta conectarse a jcenter() , por lo que este proceso puede llevar mucho tiempo (+30 min), incluso usted no puede agregar una nueva dependencia.

Solución:

  1. Asegúrate de tener la última versión estable (actual 2.0.0)
  2. Asegúrate de que tu versión gradle sea 2.0.0 en build.gradle ( classpath 'com.android.tools.build:gradle:2.0.0' )
  3. El paso final y el más importante es cambiar tu jcenter () a mavenCentral ()

¡Entonces puede agregar fácilmente nueva dependencia y proyecto de sincronización en 3 segundos!

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:2.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { mavenCentral() } } task clean(type: Delete) { delete rootProject.buildDir } 

Que te diviertas

Además de @Mehdi Jahed Manesh respuesta anterior.

Aumente la cantidad de memoria asignada a Gradle Daemon VM en 1 Gb, a un mínimo de 2 Gb, utilizando la propiedad org.gradle.jvmargs como esta:

 org.gradle.jvmargs=-Xmx2048m 

Podrías optimizar el proceso de comstackción de gradle …

Intenta poner el gradle en modo fuera de línea forzando la comstackción sin ninguna conexión a repositorys externos, como este:

enter image description here enter image description here

Esto me ayudó mucho, porque en mi trabajo, todas las conexiones están detrás de un proxy y aumenta el tiempo de comstackción.

Si esto no es suficiente para usted, tómese un tiempo probando las opciones en Gradle> Experimental … Algunas opciones pueden mejorar su rendimiento:

enter image description here

En mi caso, lo resolví instalando una nueva versión de Java JDK. Después de instalar el nuevo JDK, abra AS, vaya a Archivo → Estructura del proyecto → Ubicación del SDK y cambie la ubicación del JDK a la de la nueva versión de Java JDK. Luego se le pedirá permiso de firewall; verifica Public y aplica. Deja que resuelva gradle.

Una vez que se haya completado la comstackción inicial, intente habilitar el Modo fuera de línea desde la configuración de Gradle. De modo que cada comstackción consecutiva no comenzará a resolver dependencias, sino que se obtiene de la caché. Si agrega una nueva dependencia, le pedirá que deshabilite el modo fuera de línea y lo reconstruya. imagen de la vista previa de gradle

He visto otro problema. La solución podría ayudar a alguien

Recientemente, he establecido http_proxy y https_proxy en las variables de entorno del sistema. Tuve que eliminar ambos y luego configurar el proxy en la configuración de estudio.

cambie classpath 'com.android.tools.build:gradle:1.5.0' a

 classpath 'com.android.tools.build:gradle:2.0.0' 

y cambie buildToolsVersion "23.0.3" a

 buildToolsVersion "23.0.2" 

y usa la versión estable de android studio 2.0. déjame saber que quieres más detalles o esta solución no funcionó para ti.