使用com.google.gms.google-services

时间:2016-09-15 14:18:28

标签: android firebase google-play-services multidex

我有一个使用大量库的应用程序。该应用程序适用于MultiDex。但是,当我尝试集成Firebase SDK时,该应用程序需要花费很长时间来加载Android设备的首次应用程序启动< Android Lollipop。

在运行4.4.4的Nexus 5上,我遇到黑屏,持续大约一分钟,然后应用程序恢复正常。它似乎是MultiDex过程。经过一些实验,一次重新整合Firebase,问题首先出现在我apply plugin: 'com.google.gms.google-services'

有关为什么这个插件增加了这​​么多臃肿的想法?请不要对Instant Run发表评论。我已经看到其他堆栈溢出文章提示,但是没有启用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'

1 个答案:

答案 0 :(得分:0)

需要更正Google Play服务的Set Up Guide。在构建依赖项中指定compile 'com.google.android.gms:play-services:9.4.0'不是一种好习惯。它会将所有 Google Play和Firebase库添加到您的应用中。这会增加构建时间,增加APK文件的大小,并经常通过64K方法参考限制,强制使用Mulitdex。

删除compile 'com.google.android.gms:play-services:9.4.0'并将其替换为您需要的Play服务库。这可能会消除对Multidex的需求,并且应该可以改善应用程序的启动时间。