我有一个使用大量库的应用程序。该应用程序适用于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