com.google.firebase.provider.FirebaseInitProvider:java.lang.ClassNotFoundException:com.google.firebase.provider.FirebaseInitProvider

时间:2016-11-16 11:38:41

标签: android firebase

KitKat 上接收此错误,并在Lollipop及以上版本上完美运行

我在gradle和Firebase json文件中包含了所有必需的jar以接收GCM。

我的app gradle

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

android {
    compileSdkVersion 23
    buildToolsVersion "24.0.0"
    defaultConfig {
        applicationId ""
        minSdkVersion 13
        targetSdkVersion 23
        versionCode 6
        versionName "1.6"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    defaultConfig {
        multiDexEnabled true
    }
    useLibrary 'org.apache.http.legacy'
}


dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile project(':httpmime-4.2.5')
    compile project(':universal-image-loader-1.9.3')
    compile project(':universal-image-loader-1.9.3')
    compile group: 'org.apache.httpcomponents', name: 'httpclient-android', version: '4.3.3'

    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.loopj.android:android-async-http:1.4.9'
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'

    compile 'com.android.support:design:23.4.0'
    compile 'com.google.android.gms:play-services:9.0.0'
    testCompile 'junit:junit:4.12'
}

2 个答案:

答案 0 :(得分:5)

此相关性包括Google Play服务API 所有的代码:

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

这很可能导致您的应用超过65K方法参考限制,要求您使用Multidex在Lollipop之前的设备上运行。

你有两个选择。您只能包含实际需要的Play服务API。标题为选择性地将API编译为可执行文件的部分中的list is here。或者您可以在instructions here之后启用Multidex。虽然build.gradle文件中有multiDexEnabled true,但这只是配置Multidex所需的三个步骤之一。您还需要将库包含为依赖项并更新清单。

如果您使用的是Android Studio 2.2.2,则可以使用APK Analyzer查看应用中有多少方法引用。从菜单栏中选择 Build>分析APK 。 APK位于文件夹.../app/build/outputs/apk中。选择APK文件,然后在结果窗口中单击classes.dex以查看方法和方法参考的数量。

答案 1 :(得分:0)

请更新firebase依赖项

dependencies {
    ...
    compile 'com.google.firebase:firebase-messaging:9.6.0'
    ...
}
apply plugin: 'com.google.gms.google-services'

希望有所帮助......