Domanda Android richiede più tempo all'avvio dell'applicazione durante il primo avvio


Nel mio progetto, ho usato librerie che richiedono il supporto multidex. Sulla base della ricerca che ho fatto, sono venuto a sapere che provoca ritardi durante l'avvio dell'app.

Ho abilitato la funzionalità multidex in gradle. defaultConfig {multiDexEnabled true}

Ero solito ottenere l'eccezione NoClassDefFound per i dispositivi kitkat, quindi ho aggiunto quanto segue:

Ho aggiunto il nome dell'applicazione in manifest come    android: name = "android.support.multidex.MultiDexApplication"

ed ha esteso la mia classe di applicazione con MultiDexApplication.

So che uno dei precedenti è sufficiente, ma ho appena scritto entrambi.

Ho provato diversi modi per ottimizzare la durata dell'avvio come segue:

1. prodotto aggiuntoFlavor {       dev {             minSdkVersion 21           }         prod {             minSdkVersion 14         }     }

  1. dexOptions { preDexLibraries false javaMaxHeapSize "4g" }

  2. Ho importato solo le librerie richieste del servizio di riproduzione di Google invece di importare la libreria completa.

Puoi per favore suggerirmi un approccio per improvvisare la durata perché in realtà richiede più di 10 secondi e alcune volte anche più di quello in alcuni dispositivi?

Oppure c'è qualche altra ragione che potrebbe causare il ritardo oltre a multidex?

Grazie in anticipo.

Ho aggiunto il mio contenuto del file build.gradle:

 apply plugin: 'com.android.application'
 apply plugin: 'com.google.gms.google-services'

 android {
  compileSdkVersion 23
  buildToolsVersion "23.0.3"
  useLibrary 'org.apache.http.legacy'

 defaultConfig {
    applicationId "com.example.app"
    minSdkVersion 17
    targetSdkVersion 23
    versionCode 3
    versionName "1.2"
    multiDexEnabled true
}

dexOptions {
    incremental true
    javaMaxHeapSize "10g"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
  }
}

  dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/ormlite-android-4.28.jar')
    compile files('libs/ormlite-core-4.28.jar')
    compile project(':volley')
    compile 'com.android.support:cardview-v7:23.2.1'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.github.siyamed:android-shape-imageview:0.9.+@aar'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.android.support:design:23.2.1'
    compile 'com.facebook.android:facebook-android-sdk:4.1.2'
    compile 'org.jsoup:jsoup:1.8.2'
    compile 'org.twitter4j:twitter4j:4.0.3'
    compile 'com.github.castorflex.smoothprogressbar:library-circular:1.1.0'
    compile 'com.orhanobut:dialogplus:1.11@aar'
    compile 'com.google.android.gms:play-services-maps:8.3.0'
    compile 'co m.google.android.gms:play-services-gcm:8.3.0'
    compile 'com.google.android.gms:play-services-location:8.3.0'
    compile 'org.java-websocket:Java-WebSocket:1.3.0'
    compile 'org.apache.commons:commons-lang3:3.4'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
 }

16
2018-05-18 10:12


origine


risposte:


C'è uno strano problema con Android Studio 2.0 o 2.1 appena rilasciato. La prima volta che si avvia l'applicazione richiede più tempo del solito. Questo problema si verifica solo in modalità di debug e non ha effetto sull'APK rilasciato. Inoltre stavo soffrendo di questo problema e ho trovato questa soluzione.

Settings/Preferences(Mac) → Build, Execution, Deployment → Instant Run and uncheck Instant Run

enter image description here

Questo risolverà il tuo problema e, se lo desideri, segna come risposta accettata.


42
2018-05-28 11:10



C'è un problema nella versione 2.0 e 2.1 di Android Studio, ma la risposta è semplice. Devi andare a Preferenze / Build, Execution, Deployment / Instant Run.

Quindi quando si fa clic su "Instant Run" nella parte destra appariranno 4 opzioni con una casella di controllo per echa one, è necessario deselezionare il primo e l'ultimo. Infine fai clic su Applica, Ok. E questo è tutto.

Questo risolverà il problema


2
2017-08-10 17:08