You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase AuthUI抛出NoClassDefFoundError:无法解析zzbgl类

问题描述

我的App在调用以下代码时突然崩溃,这段代码之前一直正常运行,我没有修改过代码或任何依赖,但今天突然出现问题:

if (FirebaseAuth.getInstance().getCurrentUser() == null) { 
    startActivityForResult( 
        AuthUI.getInstance() 
            .createSignInIntentBuilder() 
            .setAvailableProviders(providers) 
            .setLogo(R.drawable.shape_circle) 
            .build(), 
        RC_SIGN_IN); 
}

崩溃抛出的异常信息如下:

05-29 20:57:58.875 11408-11408/com.example.jonas.trainingslog1 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.jonas.trainingslog1, PID: 11408 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/internal/zzbgl; at com.firebase.ui.auth.util.GoogleApiUtils.getCredentialsClient(GoogleApiUtils.java:20) at com.firebase.ui.auth.viewmodel.AuthViewModelBase.onCreate(AuthViewModelBase.java:32) at com.firebase.ui.auth.viewmodel.ViewModelBase.init(ViewModelBase.java:23) at com.firebase.ui.auth.KickoffActivity.onCreate(KickoffActivity.java:33) at android.app.Activity.performCreate(Activity.java:7130) at android.app.Activity.performCreate(Activity.java:7121) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1262) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2905) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3060) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:110) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:70) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1800) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6649) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826) 05-29 20:57:58.876 11408-11442/com.example.jonas.trainingslog1 V/FA: Activity paused, time: 1808810 05-29 20:57:58.876 11408-11408/com.example.jonas.trainingslog1 E/AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.internal.zzbgl" on path: DexPathList[[zip file "/system/framework/org.apache.http.legacy.boot.jar", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/base.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_dependencies_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_resources_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_0_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_1_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_2_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_3_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1-zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_4_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1-zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_5_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_6_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_7_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_8_apk.apk", zip file "/data/app/com.example.jonas.trainingslog1-zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_9_apk.apk"],nativeLibraryDirectori es=[/data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/base.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1-zQJYHa_fJvVM5m38ZSfIlA==/split_lib_dependencies_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_resources_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_0_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_1_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_2_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_3_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_4_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_5_apk.apk!/lib/x86, /data/app/com.example.jonas.trainingslog1- zQJYHa_fJvVM5m38ZSfIlA==/split_lib_slice_6_apk.apk!/lib/x86, /dat
解决方案

这个错误是典型的Firebase UI Auth与Google Play服务/Firebase SDK版本不兼容导致的,哪怕你没手动修改依赖,构建工具可能自动拉取了更新的依赖版本,或者本地缓存出现了问题。试试下面的步骤:

  • 统一Firebase相关依赖版本:
    打开你的build.gradle(Module级别),确保Firebase Auth、Firebase UI Auth的版本完全匹配官方推荐的组合。你可以在根build.gradle里统一配置版本变量,避免版本不一致:

    buildscript {
        ext {
            firebaseVersion = "21.0.1"
            firebaseUiVersion = "7.2.0"
        }
        // ...其他配置
    }
    

    然后在Module的build.gradle里引用:

    implementation "com.google.firebase:firebase-auth:$firebaseVersion"
    implementation "com.firebaseui:firebase-ui-auth:$firebaseUiVersion"
    
  • 清理构建缓存:
    这是解决这类诡异缓存问题的常用方法。在Android Studio里点击File -> Invalidate Caches...,选择Invalidate and Restart;或者用命令行执行:

    ./gradlew clean
    ./gradlew build
    
  • 检查依赖冲突:
    执行./gradlew app:dependencies查看你的依赖树,看看有没有不同版本的com.google.android.gms或com.google.firebase依赖。如果有,在根build.gradle的allprojects块里强制统一版本:

    allprojects {
        repositories {
            // ...仓库配置
        }
        configurations.all {
            resolutionStrategy {
                force 'com.google.android.gms:play-services-auth:20.2.0'
                force "com.google.firebase:firebase-auth:$firebaseVersion"
            }
        }
    }
    
  • 检查设备上的Google Play服务版本:
    如果你的测试设备上Google Play服务版本过旧,也可能导致找不到对应的内部类。打开设备的Google Play商店,搜索“Google Play服务”,确保它是最新版本。

  • 启用Multidex(可选):
    虽然这个错误主要是版本问题,但如果你的App方法数较多,也可能导致Dex打包时遗漏类。在Module的build.gradle里启用Multidex:

    android {
        defaultConfig {
            // ...其他配置
            multiDexEnabled true
        }
    }
    dependencies {
        implementation 'androidx.multidex:multidex:2.0.1'
    }
    

    然后让你的Application类继承MultiDexApplication,或者在attachBaseContext里调用MultiDex.install(this)。

按照这些步骤逐一排查,应该能解决你的崩溃问题。

内容的提问来源于stack exchange,提问作者Jonas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:20:28