Android gradle de construcción es demasiado lento (Dependency Resolution)

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 un nuevo lib o dependencia, gradle está tomando demasiado tiempo para construir – casi 20 minutos .

No hice nada, acabo de descargar la versión Canaria y lo corrí.

Síntomas:

  1. Sucedió cuando me conecté a Internet
  2. El primer retardo está en Gradle: Resolve dependencies ': 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 arreglar esto de estas maneras :

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

     org.gradle.parallel=true org.gradle.daemon=true 
  3. Quité esa versión entonces instalé mi versión vieja que trabajó ACEPTABLE pero el problema estaba todavía allí: (

  4. Deshabilitar / habilitar firewall

  5. Deshabilitar / Habilitar AntiVirus (Nod32)

  6. Reinstale 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 utilizado un proxy


Información del sistema :

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

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: app)

 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' } 

Informe Gradle 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 android studio 2.0 stable version

  • 7:23:47 PM Gradle sync started ====> 8:13:21 PM Gradle sincronizado completado

El problema esta resuelto !

Después de 2 días de búsqueda, tengo la solución, por lo que me gustaría compartir con todas las personas que pueden tener el mismo problema. El problema es que gradle no puede conectarse al repositorio central en algún país. Cuando crea un nuevo proyecto o importa, su repositorio central es jcenter() de forma predeterminada y siempre que quiera crear 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 conectar a jcenter() , por lo que este proceso puede tardar mucho tiempo (+30 min), incluso no se puede agregar nueva dependencia.

Solución:

  1. Asegúrese de tener la última versión estable (actual 2.0.0)
  2. Asegúrese de que su versión gradle es 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 ()

Así que usted puede agregar fácilmente nueva dependencia y sincronizar el proyecto en 3sec!

 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.

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

Org.gradle.jvmargs = -Xmx2048m

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

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

En mi caso, lo solucioné instalando una nueva versión del 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 de JDK a la de la nueva versión del Java JDK. A continuación, se le pedirá permiso de firewall; Marque Público y aplique. Deje que se resuelva gradle.

Cambiar 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 el uso del androide estudio 2.0 versión estable. Déjame saber que quieres más detalles o esta solución no te funcionó.

  • Gradle no pudo encontrar com.android.databinding: dataBinder: 1.0-rc0
  • Android Studio y PhoneGap, módulo android no está respaldado por gradle
  • Android BuildConfig Campo que genera Cadena incorrectamente
  • Dónde colocar la directiva de complemento de aplicar Crashlytics en archivos de compilación de Gradle
  • Diferencia entre el funcionamiento de pelusa a través del menú de Android Studio y la línea de comandos de gradlew
  • Gradle dependencias que se resuelven de repente muy lento
  • Las dependencias de build.gradle se actualizan automáticamente
  • En Android Studio 2.0, no se puede encontrar la variable local del método en el modo de depuración
  • Gradle buildConfigField con una variable entera
  • Cómo aplicar dependencias para todos los proyectos / módulos de niños Gradle Android Studio
  • Tener un sabor de producto ser un hijo de otro
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.