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

com.crashlytics.android.beta.Beta类找不到问题求助

解决java.lang.NoClassDefFoundError: Failed resolution of: Lcom/crashlytics/android/beta/Beta;

我来帮你排查这个Crashlytics Beta类找不到的问题,结合你的配置和崩溃日志,给你几个针对性的解决方案:

1. 显式添加Crashlytics Beta依赖

你的Crashlytics依赖虽然设置了transitive = true,但可能存在依赖传递失效的情况。直接显式引入Beta模块能确保类被正确打包:

// 在dependencies块中添加,版本要和你的Crashlytics版本匹配(crashlytics:2.9.2对应beta:1.2.10)
compile 'com.crashlytics.sdk.android:beta:1.2.10'

2. 确认MultiDex配置完整度

虽然你的应用继承了MultiDexApplication,但建议补充手动初始化步骤,避免某些场景下MultiDex未正确加载:

@Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
}

同时检查build.gradle的defaultConfig是否确实开启了MultiDex:

android {
    defaultConfig {
        // 确保这一行存在
        multiDexEnabled true
    }
}

3. 修正ProGuard规则

确保你的ProGuard没有误删Crashlytics相关类,添加以下规则:

-keep class com.crashlytics.** { *; }
-keep class com.crashlytics.android.** { *; }
-keepattributes SourceFile,LineNumberTable
-keepattributes *Annotation*

同时检查是否存在任何排除Crashlytics类的ProGuard配置,比如错误的-dontwarn或-keepclassmembers规则。

4. 清理缓存并重建项目

缓存问题经常导致依赖打包异常,执行以下操作:

  • 点击Android Studio菜单栏的Build -> Clean Project
  • 接着执行Build -> Rebuild Project
  • 必要时删除项目根目录的.gradle文件夹和模块下的build文件夹,再重新同步项目

5. 检查依赖兼容性与冲突

你的项目中使用了Firebase/Google Play Services 11.4.2,建议确认Crashlytics 2.9.2与该版本的兼容性。如果存在版本冲突,可以尝试将Crashlytics升级到匹配的版本(比如2.10.1),同时确保所有Google Play Services依赖版本保持一致。

6. 验证Dex打包内容

用Android Studio的Build -> Analyze APK功能打开生成的APK,查看是否存在com/crashlytics/android/beta/Beta.class文件:

  • 如果该文件不存在:说明依赖未被正确引入,回到步骤1检查依赖配置
  • 如果该文件存在:问题大概率出在MultiDex加载或ProGuard处理上,重点排查步骤2和3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:22:07