我有一個使用大量庫的應用程序。該應用程序適用於MultiDex。但是,當我嘗試集成Firebase SDK時,該應用程序需要很長時間才能加載Android設備的第一個應用程序啓動文件< Android Lollipop。使用com.google.gms.google服務首次啓動應用程序時,Android應用程序需要更多時間啓動
在運行4.4.4的Nexus 5上,我遇到了一個持續大約一分鐘的黑屏,然後應用程序恢復正常。它似乎是MultiDex過程。經過一番實驗後,一次一步重新整合Firebase,問題首先發生在我apply plugin: 'com.google.gms.google-services'
。
有關爲什麼這個插件增加了很多膨脹的想法?請不要評論Instant Run。我已經看到其他堆棧溢出文章暗示,但即時運行沒有啓用,並且無論我第一次從我的電腦啓動,調試apk還是發佈apk,都會發生這種情況。
在此先感謝。
的build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.3'
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
defaultConfig {
applicationId "com.example.app"
minSdkVersion 15
multiDexEnabled true
targetSdkVersion 21
versionCode 1
versionName "1"
}
dexOptions {
incremental = true
javaMaxHeapSize = "4g"
}
lintOptions {
abortOnError false
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// Firebase - https://firebase.google.com/docs/android/setup
compile 'com.google.firebase:firebase-ads:9.4.0'
compile 'com.google.firebase:firebase-auth:9.4.0'
compile 'com.google.firebase:firebase-config:9.4.0'
compile 'com.google.firebase:firebase-core:9.4.0'
compile 'com.google.firebase:firebase-crash:9.4.0'
compile 'com.google.firebase:firebase-database:9.4.0'
compile 'com.google.firebase:firebase-invites:9.4.0'
compile 'com.google.firebase:firebase-messaging:9.4.0'
compile 'com.google.firebase:firebase-storage:9.4.0'
// Google Play Services - https://developer.android.com/google/play-services/setup.html
compile 'com.google.android.gms:play-services:9.4.0'
// SDKs
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:support-v13:23.4.0'
}
apply plugin: 'com.google.gms.google-services'
我認爲你的問題主要是由於多重dexed應用程序。你爲什麼使用'com.google.android.gms:play-services:9.4.0'播放服務的通用版本?你可以添加更多特定的庫,如'com.google.android.gms:play-services-gcm:9.4.0'? –
不幸的是,即使我刪除Google Play服務,我們的應用程序仍然需要MultiDex。 – lgdroid57