El proyecto gradle de Android se desarrolla muy lentamente
Hemos cambiado nuestro proyecto de aplicación Android para usar gradle, pero hemos notado que está creciendo significativamente más lento.
Antes con ANT:
6 sek / 50 seg (con limpia)
- IntelliJ - Proyecto Android - Gradle Refresh Failed
- ERROR: Generador de fuentes de Android: archivo AndroidManifest.xml no encontrado
- Android - ¿Qué archivo debug.keystore es IntelliJ firmando mi aplicación?
- Obtener error Gradle "No se pudo reservar espacio suficiente para montón de objetos" constantemente en Intellij IDEA
- Agrega .idea / libraries a .gitignore con Android Studio (y Gradle) una buena idea?
Después con gradle:
30 sek / 80 seg (con limpia)
He perfilado la solución con:
gradle assembleDebug --profile
Las tareas principales en el informe resultante fueron las siguientes tareas: (en la construcción sin limpiar)
:packageDebug 10.690s :processDebugResources 8.795s :compileDebugJava 7.644s
No tengo ninguna idea acerca de cómo obtener más detalles de la información acerca de mis tareas.
¿Esto es normal? ¿Cómo podría mejorar esto?
Sé que el nuevo sistema de construcción todavía está en betas, pero parece que otros están construyendo mucho más rápido.
He mirado alrededor sin encontrar una solución que he intentado varias cosas incluyendo cerciorarse deamon del gradle se permite con un archivo de gradle.properties que contiene esto:
org.gradle.daemon=true org.gradle.jvmargs=-Xms128m -Xmx256m org.gradle.parallel=true
Build.gradle:
buildscript { repositories { mavenCentral() maven { url 'http://download.crashlytics.com/maven' } } dependencies { classpath 'com.android.tools.build:gradle:0.7.+' classpath 'com.google.guava:guava:14.0.1' classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' classpath 'me.tatarka:gradle-retrolambda:1.1.1' classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2' } } repositories { mavenCentral() maven { url 'http://download.crashlytics.com/maven' } } apply plugin: 'android' apply plugin: 'crashlytics' apply plugin: 'retrolambda' apply plugin: 'android-apt' dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile 'com.google.guava:guava:14.0.1' compile 'com.crashlytics.android:crashlytics:1.+' apt "org.androidannotations:androidannotations:3.0.1" compile "org.androidannotations:androidannotations-api:3.0.1" } apt { arguments { resourcePackageName "com.example" androidManifestFile variant.processResources.manifestFile } } android { packagingOptions { //Fix: http://stackoverflow.com/a/20675331/860488 exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/LICENSE' exclude 'META-INF/NOTICE' } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } compileSdkVersion 10 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 7 targetSdkVersion 10 buildConfigField "boolean", "useProductionServices", "true" } buildTypes { testflight.initWith(buildTypes.debug) debug { packageNameSuffix ".debug" buildConfigField "boolean", "useProductionServices", "false" } testflight { packageNameSuffix ".testflight" buildConfigField "boolean", "useProductionServices", "true" } release { buildConfigField "boolean", "useProductionServices", "true" } } } retrolambda { compile "net.orfjackal.retrolambda:retrolambda:1.1.2" jdk System.getenv("JAVA8_HOME") }
- Error: Generador de origen de Android: No se puede analizar SDK
- Problemas al importar proyectos en Android Studio con respecto a ActionBarSherlock
- Genymotion 2.7.2 no puede comenzar después de la actualización
- ¿Hay manera de extraer recursos de cadena en el proyecto de Android en IntelliJ IDE?
- Dependencia del módulo no detectada durante la compilación en IntelliJ IDEA 11
- Gradle + Retrolambda: Fatal Error: No se puede encontrar el paquete java.lang en classpath o bootclasspath
- Utilizando la biblioteca android.support.v4 en Intellij idea
- ¿Cómo puedo obfuscate una aplicación de Android fácilmente cuando se utiliza IntelliJ IDEA?
Tengo el mismo problema y resuelto por este ajuste:
Archivo -> Configuración -> Construcción, Ejecución, Implementación -> Herramientas de Construcción -> Gradle -> Trabajo sin conexión
Después de esta configuración reduce el tiempo de 3 minutos a 2s728ms
Añadir un archivo gradle.properties
con este contenido ayuda un poco:
org.gradle.daemon=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx256m
EDITAR:
Acabo de leer este blogpost que tiene 6 consejos para mejorar gradle construir velocidad:
6 consejos para acelerar la generación de Gradle
Use gradlew assembleDebug en la consola es más rápido
**** Hablar acerca de la nueva versión de AS en hilo de la vieja pregunta puede parecer raro.Pero creo que puede ayudar a alguien más, que busca una respuesta ****
AndroidStudio 2.0 Probablemente le ayudará a mejorar el proceso de creación.
Las siguientes cosas jugarán un papel importante en la mejora del proceso de construcción con 2.0
-
Ejecución instantánea: debe habilitarla en la configuración. Configuración de archivos: ejecución instantánea. A continuación, habilítelo
-
AS 2.0 En realidad incluye la opción de reinicio de la aplicación para mejorar el despliegue.
-
Si tiene módulos en su proyecto. 2.0 hará pre-dexing y mantenerlo para construir. Hasta que tengamos cambios en el módulo, no es necesario volver a dex y dex sólo la pieza de modificación para ejecutar en el dispositivo / emulador. En serio, eso ahorra mucho tiempo. Haga negocios basados en módulos.
-
Las tareas de optimización y obfuscación de Progaurd también desempeñan un papel en la ralentización del proceso de construcción. Haga lo siguiente para detener la optimización y ofuscación con progaurd mientras quiera sólo modo de depuración.
android { buildTypes { debug { minifyEnabled true useProgaurd false } release { minifyEnabled true useProgaurd true } } }
- Después de todo en AS 2.0 con la configuración por defecto en sí ayudan a mejorar el rendimiento del edificio.
Una sugerencia más que cada desarrollador sugeriría comúnmente es hacer que el modo inactivo de plug-in de Gradle esté habilitado si no agrega ninguna nueva dependencia de biblioteca para un proceso de compilación particular.
- Controles del reproductor de medios en la notificación
- Actividad de inicio de sesión de Android y redirección de actividad de inicio