Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


La ejecución instantánea toma más tiempo que las compilaciones estándar

Ha pasado algún tiempo que Instant Run ya no funciona, es decir, es más lento que las compilaciones estándar.

Hay algún material en el rastreador de errores de AOSP, pero no pude resolverlo. Estoy seguro de que algunos de ustedes lo ayudarán.

Sin ejecución instantánea

Las construcciones tardan aproximadamente 1.30 min.

Con Instant Run

Ejecuto la aplicación por primera vez y luego aplico algún cambio menor. Por ejemplo, cambie int a = 1 a int a = 2 dentro de un método, o modifique una cadena.

A continuación, haga clic en Ejecutar de nuevo. Lo que pasa:

  • Aparece una compilación aparentemente completa (llamando a assembleDebug en todos mis módulos). Toma aproximadamente 1.30 min.
  • Una segunda ronda continúa, llamando a la app:assembleDebug . Se tarda alrededor de otro minuto:

     16:27:10 Executing tasks: [:app:assembleDebug] 16:28:16 Gradle build finished in 1m 5s 264ms 16:28:22 Instant Run applied code changes and restarted the app. 

Durante la primera ronda, no hay salida alguna a Event Log o Gradle Console. Durante la segunda ronda, la consola Gradle consume mucho material y termina con

 BUILD SUCCESSFUL Total time: 51.385 secs PREDEX CACHE HITS: 0 PREDEX CACHE MISSES: 45 Stopped 0 compiler daemon(s). 

¿Que puedo hacer?

Tengo estos en mi archivo de grade.properties :

 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.daemon=true 

Nada dex relacionado en archivos build.gradle . No usar a Jack. Android Studio 2.2.3.


Archivo gradle.properties

 org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true org.gradle.daemon=true ANDROID_BUILD_MIN_SDK_VERSION=15 ANDROID_BUILD_TARGET_SDK_VERSION=25 ANDROID_BUILD_SDK_VERSION=25 ANDROID_BUILD_TOOLS_VERSION=25.0.2 

Nivel de proyecto build.gradle

 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.google.gms:google-services:3.0.0' } } allprojects { repositories { jcenter() } } 

Módulo principal build.gradle

(Tengo otros dos módulos de la "biblioteca" también)

 apply plugin: 'com.android.application' Properties signProp = new Properties() signProp.load(new FileInputStream(file(project.property("SIGN_PROPS")))) Properties authProp = new Properties() authProp.load(new FileInputStream(file(project.property("AUTH_KEYS_PROPS")))) def PARSE_APPLICATION_ID = '"' + authProp['parseApplicationId'] + '"'; def PARSE_CLIENT_KEY = '"' + authProp['parseClientKey'] + '"' def PARSE_SERVER_URL = '"' + authProp['parseServerURL'] + '"' def GOOGLE_PLAY_API_KEY = '"' + authProp['googlePlayApiKey'] + '"' android { signingConfigs { release_config { keyAlias signProp['keyAlias'] keyPassword signProp['keyPassword'] storeFile file(signProp['storeFilePath']) storePassword signProp['storePassword'] } } compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION) buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION defaultConfig { minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION) targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION) versionCode 21 versionName "1.3.3" buildConfigField 'String', 'PARSE_APPLICATION_ID', PARSE_APPLICATION_ID buildConfigField 'String', 'PARSE_CLIENT_KEY', PARSE_CLIENT_KEY buildConfigField 'String', 'PARSE_SERVER_URL', PARSE_SERVER_URL buildConfigField 'String', 'GOOGLE_PLAY_API_KEY', GOOGLE_PLAY_API_KEY signingConfig signingConfigs.release_config proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' vectorDrawables.useSupportLibrary = true } buildTypes { release { minifyEnabled true shrinkResources true } debug { minifyEnabled false shrinkResources false } } productFlavors { } } dependencies { compile 'com.android.support:design:24.2.1' compile 'com.android.support:cardview-v7:24.2.1' compile 'com.android.support:recyclerview-v7:24.2.1' compile 'com.android.support:preference-v14:24.2.1' compile 'com.google.maps.android:android-maps-utils:0.4.3' compile 'com.google.android.gms:play-services-maps:9.2.1' compile 'com.google.android.gms:play-services-appinvite:9.2.1' compile 'com.google.android.gms:play-services-location:9.2.1' compile 'com.google.android.gms:play-services-appindexing:9.2.1' compile ('com.facebook.android:facebook-android-sdk:4.16.1') { exclude module: 'bolts-tasks' } compile 'com.parse.bolts:bolts-tasks:1.4.0' compile 'com.squareup.okhttp3:okhttp:3.2.0' compile 'com.parse:parse-android:1.13.1' compile ('com.parse:parseui-widget-android:0.0.1') { exclude module: 'parse-android' } compile project(':dateTimePicker') compile project(':commons') } apply plugin: 'com.google.gms.google-services' 

  • ¿Cómo podemos mostrar la libra y el símbolo del euro en Android TextView?
  • Pantalla negra en la preferencia interna Pantalla
  • ¿Cómo establecer el enfoque en una vista cuando se crea y se muestra un diseño?
  • Gradle + Retrolambda: Fatal Error: No se puede encontrar el paquete java.lang en classpath o bootclasspath
  • ¿Qué ruta de acceso al sistema de archivos utiliza Context.openFileOutput () de Android?
  • Despliegue de SVN y sintaxis en Android
  • ¿Cómo calcular una distancia específica dentro de una imagen?
  • La aplicación se bloquea cuando se utiliza la retrollamada de Retrofit en modo de depuración
  • 4 Solutions collect form web for “La ejecución instantánea toma más tiempo que las compilaciones estándar”

    http://tools.android.com/recent/androidstudio223isnowavailable

    Actualiza a la última versión de Android Studio y luego aumenta el perfil de memoria en (studio.vmoptions) basado en la memoria del sistema

      -Xms256m -Xmx1280m -XX:MaxPermSize=350m 

    Si estás utilizando los servicios de Google Play, asegúrate de no usarlo en el script de compilación de Gradle:

     compile 'com.google.android.gms:play-services:8.3.0' 

    Utilice únicamente las API de Google que su aplicación está usando realmente. Si todo lo que estás usando es Google Maps, usarías esto:

     com.google.android.gms:play-services-maps:8.3.0 

    Cuando hice esto, mi tiempo de compilación pasó de más de 2 minutos a alrededor de 25 segundos. Para obtener una lista de los API de Google que puede compilar selectivamente, consulte:

    https://developers.google.com/android/guides/setup

    Habilitar ejecución instantánea

    1. Abra el cuadro de diálogo Configuración o Preferencias.
    2. Vaya a Compilación, Ejecución, Implementación> Ejecución instantánea.
    3. Marque la casilla junto a Habilitar ejecución instantánea.

    Limitaciones de la ejecución instantánea.

    Implementación de varios dispositivos, Multidifusión de la aplicación, Uso de complementos de terceros, Pulsación de cambios en aplicaciones de procesos múltiples, Inicio de la aplicación en un perfil de trabajo.

    Si utiliza soporte multidex (multiDexEnabled true) para su aplicación, minSdkVersion debe tener 21 o más. De lo contrario, android studio desactiva la ejecución instantánea.

    El complemento de Android para la versión gradle debe ser 2.1.0 o superior

    Habilitar Offline Trabajo android studio para acelerar:

    Ir a la configuración del archivo >> o simplemente pulsar ctrl + alt + s

    Archivo >> ajustes >> Gradle. Compruebe el trabajo fuera de línea en la configuración de graduación global

    Mejorar el rendimiento de Gradle

    Después de abrir el estudio android, abra el archivo gradle.properties desde el lado derecho de android studio y agregue las dos líneas siguientes.

      org.gradle.jvmargs=-Xmx1536m org.gradle.daemon=true org.gradle.parallel=true 

    Configurar variantes de compilación de depuración en buildTypes

     debug { minifyEnabled false applicationIdSuffix ".debug" } 

    Después de los cambios, debes reiniciar tu Android Studio.

    Nota: El tiempo de compilación depende del procesador y la RAM. Me di cuenta en (i7-3610qm con 8gb RAM) cuando se compila 4 android proyecto de estudio a la vez, luego lento responder en la ventana. Después de terminar el proceso de construcción pc funciona normal.

    Mantener las versiones bulit y la versión de destino iguales

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.