java.lang.NoClassDefFoundError:com.google.firebase.FirebaseOptions

San*_*rde 32 google-app-engine android firebase google-play-services google-cloud-platform

我在google开发者控制台上遇到了这个奇怪的错误.所以我使用谷歌云测试实验室来了解真正发生的事情.结果我的应用程序在几乎所有设备上都失败了

FATAL EXCEPTION: main
 Process: com.blackcurrantapps.iamin, PID: 16706
 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
    at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
    at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1591)
    at android.content.ContentProvider.attachInfo(ContentProvider.java:1562)
    at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
    at android.app.ActivityThread.installProvider(ActivityThread.java:4871)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4466)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4406)
    at android.app.ActivityThread.access$1500(ActivityThread.java:139)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:136)
    at android.app.ActivityThread.main(ActivityThread.java:5102)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
    at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是测试的屏幕截图. 在此输入图像描述

现在这是有趣的部分,我根本不在我的应用程序中使用Firebase.当我在整个应用程序中查找路径时,没有引用"Firebase"这个词.我虽然使用谷歌云服务,登录和谷歌应用程序引擎.

这是我的build.gradle文件:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'

    defaultConfig {
        applicationId "com.blackcurrantapps.iamin"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 11
        versionName "Fixed Check in Bug"
        multiDexEnabled = true
    }
    buildTypes {
        release {
            shrinkResources true
//            minifyEnabled true
//            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}
repositories {
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url "https://oss.sonatype.org/content/groups/public/" }
    maven { url "https://jitpack.io" }
    maven { url 'https://maven.fabric.io/public' }
}

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

    compile('com.mikepenz:materialdrawer:4.5.8@aar') {
        transitive = true
    }

    compile 'com.mikepenz:google-material-typeface:1.2.0.1@aar' //Google Material Design Icons
    compile 'com.mikepenz:fontawesome-typeface:4.4.0.1@aar'

    compile('com.vincentbrison.openlibraries.android:dualcache:2.2.2@jar') {
        transitive = true;
    }

    compile project(':htmlDialog')
    compile('com.twitter.sdk.android:twitter:1.8.0@aar') {
        transitive = true;
    }
    compile 'com.android.support:palette-v7:23.4.0'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.android.support:design:23.4.0'
    compile 'com.google.android.gms:play-services-maps:9.0.0'
    compile 'com.google.android.gms:play-services-gcm:9.0.0'
    compile 'com.google.android.gms:play-services-identity:9.0.0'
    compile 'com.google.android.gms:play-services-base:9.0.0'
    compile 'com.google.android.gms:play-services-plus:9.0.0'
    compile 'com.google.android.gms:play-services-analytics:9.0.0'
    compile 'com.google.android.gms:play-services-location:9.0.0'
    compile 'com.android.support:cardview-v7:23.4.0'
    compile 'com.rengwuxian.materialedittext:library:2.1.3'
    compile 'com.twotoasters.jazzylistview:library:1.2.1'
    compile 'com.twotoasters.jazzylistview:library-recyclerview:1.2.1'
    compile 'com.pnikosis:materialish-progress:1.7'
    compile 'com.getbase:floatingactionbutton:1.10.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.squareup.okhttp:okhttp:2.6.0'
    compile 'me.dm7.barcodescanner:zbar:1.8.3'
    compile 'net.glxn.qrgen:android:2.0'
    compile 'com.edmodo:cropper:1.0.1'
    compile 'com.github.PhilJay:MPAndroidChart:v2.1.6'
    compile 'de.greenrobot:eventbus:2.4.0'
    compile 'com.android.support:support-v4:23.4.0'
    compile 'com.pavelsikun:material-seekbar-preference:0.12.1+'

    compile project(path: ':backend', configuration: 'android-endpoints')
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮我从这里出去吗 ?

Ahm*_*nir 19

感谢您发布问题Sanket.我是Firebase测试实验室(以前的云测试实验室)的PM.想告诉你这是我们最终的错误,现在应该修复.

您的应用似乎正在使用最新最好的Google Play服务.我们上周更新了我们的设备以使用它们,然后我们发现了一个让我们恢复到旧版本的错误.现在,我们在我们的设备上重新部署了最新的Play服务,因此重新运行测试应该可行.如果没有,请告诉我,我们会调查并修复它.

  • 这不仅仅是谷歌云测试,实际用户设备也没有更新最新的谷歌播放服务(9.0).我将我的应用程序恢复为(8.4.4)并且一切正常.将来您是否建议将Google Play服务版本保持比最新版本低一级以避免此类问题? (6认同)
  • 我仍然在实际设备中遇到问题.有没有其他方法来修复它比更新手机的谷歌播放服务? (4认同)

Swa*_*wat 14

我找到了一个适合我的解决方案.我正在导入整个谷歌播放服务9.0.1库.临时解决方法是仅导入应用程序实际需要的API.您可以在此处获取完整的API列表.

  • 我不认为这是一个解决方案.我做的完全一样. (2认同)

son*_*368 6

与我的情况:使用FCM和谷歌地图

//for FCM
compile 'com.google.firebase:firebase-messaging:9.4.0'
//for Map
compile 'com.google.android.gms:play-services:9.4.0'
Run Code Online (Sandbox Code Playgroud)

我已修复:已删除

compile 'com.google.android.gms:play-services:9.4.0'
Run Code Online (Sandbox Code Playgroud)

和使用

compile 'com.google.android.gms:play-services-maps:9.4.0'
compile 'com.google.android.gms:play-services-location:9.4.0'
Run Code Online (Sandbox Code Playgroud)

它工作正常.