【问题标题】:java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions on Android API 15java.lang.NoClassDefFoundError:Android API 15 上的 com.google.firebase.FirebaseOptions
【发布时间】:2016-06-06 10:33:45
【问题描述】:

我有一个具有minSdkVersion API 14 的应用程序,我已经在运行 Android M 的设备上测试了该应用程序并且一切正常,然后我尝试在运行 API 15 的设备上运行该应用程序(Android 4.0.3),当应用启动时出现以下崩溃:

FATAL EXCEPTION: main 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:986)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
at android.app.ActivityThread.installProvider(ActivityThread.java:4249) 
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4004) 
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3958)
at android.app.ActivityThread.access$1300(ActivityThread.java:127) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1197)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)

我没有在我的应用程序中使用Firebase,这是我的 gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "it.*.*"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile project(':libraries:Sliding Menu')
    compile 'com.android.volley:volley:1.0.0'
    compile files('libs/YouTubeAndroidPlayerApi.jar')
    compile 'com.android.support:cardview-v7:23.+'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.android.support:design:23.4.0'
    compile 'com.google.android.gms:play-services-analytics:9.0.0'
    compile 'com.google.android.gms:play-services:9.0.0'
    compile 'com.android.support:multidex:1.0.1'
}
apply plugin: 'com.google.gms.google-services'

有谁知道可能是什么问题?为什么它只在使用 API 15 的设备上崩溃?

【问题讨论】:

  • Firebase 是 Google 云消息传递的新版本。由于您正在使用所有播放服务,因此还添加了 firebase。尝试用您需要的那些库替换compile 'com.google.android.gms:play-services:9.0.0'。如果您有任何疑问,请参阅此link
  • @Signo : 你在gradle 哪里添加了firebase lib?
  • @Signo :请检查此链接并相应地添加依赖项:firebase.google.com/docs/android/setup#available_libraries
  • @UnnikrishnanMR 是的,这就是问题所在,我正在使用 compile 'com.google.android.gms:play-services:9.0.0' 将所有谷歌库添加到我的项目中(gradle 是大约需要 50 秒来构建),我删除了该行并添加了以下内容,仅将 GCM 添加到项目中: compile 'com.google.android.gms:play-services-gcm:9.0.0' 现在它可以工作了!

标签: android


【解决方案1】:

根据最新的 Google 文档,Firebase 是 Google Cloud Messaging 的新版本。从您的 gradle 文件中,您似乎正在添加所有播放服务,因此也添加了 firebase。替换

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

只有您需要的库。有关选择性服务的更多信息,请参阅link

【讨论】:

    【解决方案2】:

    如果您还没有,请将您的“Google Play 服务”从 Android SDK 更新到第 30 版

    如果您尚未将此属性添加到清单中的应用程序标记:android:name="android.support.multidex.MultiDexApplication"

    正如您所说“我没有在我的应用中使用 Firebase” 删除 Firebase 相关类的所有内容,然后运行 从 android studio 的终端 gradlew clean。

    【讨论】:

      【解决方案3】:

      我认为您不需要 google-play-services 即可使用 firebase

      我的毕业生有什么:

      build.gradle(项目):

      ...
      dependencies {
              classpath 'com.android.tools.build:gradle:2.2.0-alpha1'
              classpath 'com.google.gms:google-services:3.0.0'
              // NOTE: Do not place your application dependencies here; they belong
              // in the individual module build.gradle files
          }
      ...
      

      build.gradle:(模块)

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

      检查这个方法,告诉我它是否有效。

      注意:如果您想使用 Firebase Analytics,则需要

      compile 'com.google.firebase:firebase-analytics:9.0.0'
      

      在您的 build.gradle(Module) 中。

      【讨论】:

        猜你喜欢
        • 2016-09-22
        • 2014-10-06
        • 2014-02-28
        • 2015-01-11
        • 2016-10-20
        • 2015-09-23
        • 2015-11-19
        相关资源
        最近更新 更多