更新到新的 Firebase 后出现异常 java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions

新手上路,请多包涵

我已经使用 this 将我的应用程序更新到了新的 firebase,现在当我编译我的项目时,我得到了以下异常。

这是我的 日志:

 11:57:54.533 27844-27844/com.example.dayshift_2.traveyy E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.dayshift_2.traveyy, PID: 27844
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)

我的 Build.gradle :

 apply plugin: 'com.android.application'

android {
compileSdkVersion 23
buildToolsVersion "23.0.3"

defaultConfig {
    applicationId "com.example.dayshift_2.traveyy"
    minSdkVersion 15
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
packagingOptions {
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/LICENSE-FIREBASE.txt'
    exclude 'META-INF/NOTICE'
}
}

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

compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
compile 'com.facebook.android:facebook-android-sdk:4.+'
compile 'com.google.android.gms:play-services:9.0.0'
compile 'com.google.firebase:firebase-database:9.0.0'
compile 'com.google.firebase:firebase-auth:9.0.0'
compile 'com.android.support:support-v13:23.3.0'
compile 'com.roughike:bottom-bar:1.2.1'
}

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

不知道我从哪里得到这个异常。任何帮助将不胜感激。谢谢

原文由 M.Waqas Pervez 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 429
2 个回答

这对我有用:

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

Android SDK 管理器 > 附加功能 > Google Play 服务

  1. 然后将 compile 'com.android.support:multidex:1.0.1' 添加到您的依赖项中(或者只需删除 multiDexEnabled true 如果不需要)

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

如果您已经在 Android Manifest 中定义了自定义应用程序类,请将其从 MultiDexApplication 扩展,而不是 Application

希望它有所帮助!

原文由 chaitan94 发布,翻译遵循 CC BY-SA 3.0 许可协议

在执行所有这些繁忙的解决方案之前,请尝试从 Android Studio 中 清理项目重建项目

 java.lang. NoClassDefFoundError

当您更改项目中的任何 名称但无法获取您在 Runtime 中所做的更改时,将引发异常。

原文由 Al Walid Ashik 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题