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

Android集成Crashlytics遇任务超时及Activity实例化失败求助

问题分析与解决方案

咱们先拆解下你遇到的两个错误:

  • 第一个CrashlyticsCore: Failed to execute task. java.util.concurrent.TimeoutException是连锁反应——因为应用启动时直接崩溃,导致Crashlytics无法完成后台提交任务;
  • 真正的崩溃根源是第二个错误:java.lang.IllegalAccessException: com.example.example.MainActivity() is not accessible from class android.app.Instrumentation

核心问题:MainActivity的构造函数不可访问

Android系统需要通过反射实例化Activity,硬性要求Activity类本身和它的无参构造函数必须是public访问权限。你大概率是在MainActivity的代码定义上出了问题:

解决方案1:修正MainActivity的访问修饰符

检查你的MainActivity代码,确保:

  1. 类本身是public的
  2. 无参构造函数是public的(如果没手动写构造函数,编译器会自动生成默认的public无参构造;但如果写了带参数的构造函数,必须手动补充public无参构造)

正确的代码示例:

public class MainActivity extends AppCompatActivity {
    // 手动声明public无参构造(如果有带参构造的话必须加)
    public MainActivity() {
        super();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 其他业务代码
    }
}

解决方案2:检查ProGuard配置(若开启混淆)

虽然你的build.gradle里minifyEnabled false,但如果debug模式下开启了混淆,或者ProGuard规则有误,可能会意外修改Activity构造函数的权限。如果后续开启混淆,务必在proguard-rules.pro中添加以下规则:

-keep public class * extends android.app.Activity
-keepclassmembers class * extends android.app.Activity {
    public <init>();
}

关于Crashlytics的TimeoutException

这个错误会在你解决MainActivity的构造问题后自动消失——因为应用可以正常启动,Crashlytics的后台任务就能顺利执行了。

核对你的Gradle配置

你的项目级和应用级build.gradle配置是正常的:

  • 正确添加了Google和Fabric仓库
  • Crashlytics、Firebase依赖版本与Gradle插件版本兼容
  • 已完成AndroidX迁移

所以重点还是放在MainActivity的代码修改上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:47:42