【问题标题】:android crashlytics to detect application suddenly destroyed and disappearedandroid crashlytics 检测应用程序突然被破坏和消失
【发布时间】:2018-10-16 10:49:13
【问题描述】:

在我的应用程序中,我有 3 个活动,

1-Splash、2-MainActivity、3-Audio Activity。

在 Audio Activity 中,我使用 ExoPlayer 循环播放 20 个音频文件(播放完最后一个文件后,第一个文件自动启动)。

应用程序可以正常工作几个小时。 有时,在播放音频期间(后台活动),应用程序停止播放而没有任何错误消息并消失,我需要再次重新打开应用程序。 (这发生在两个不同的设备上)。

在 Manifest 的一部分下方

    <application
    android:largeHeap="true"
    android:allowBackup="true"
    android:hardwareAccelerated="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyMaterialTheme"

    >
    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <meta-data android:name="android.max_aspect" android:value="2.1"/>
    <activity android:name="PKG.SplashActivity"
        android:theme="@style/MyDialogTheme"
        android:configChanges="orientation|screenSize|keyboard">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:name="com.google.android.gms.ads.AdActivity"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" />
    <activity
        android:name="com.facebook.ads.AudienceNetworkActivity"
        android:hardwareAccelerated="true" />
    <activity
        android:launchMode="singleTask"
        android:name="PKG.PlayerActivity"
        android:configChanges="orientation|screenSize|keyboard"
        android:label="@string/app_name"
        android:theme="@style/MyDialogTheme">
    </activity>
    <activity
        android:name="PKG.MainActivity"
        android:label="@string/app_name"
        android:configChanges="orientation|screenSize|keyboard">
    </activity>

Crashlytics 代码添加到主要活动(不是启动活动):

        final Fabric fabric = new Fabric.Builder(this)
            .kits(new Crashlytics())
            .debuggable(true)  // Enables Crashlytics debugger
            .build();
    Fabric.with(fabric);

我的问题:

  • 如何使用 Crashlytics 捕获此类应用程序停止?
  • 还有其他方法可以捕获此崩溃吗?

谢谢。

【问题讨论】:

标签: java android crashlytics


【解决方案1】:

在Application.class中

Thread.setDefaultUncaughtExceptionHandler(new CrashExceptionHandler(context));

public class CrashExceptionHandler implements Thread.UncaughtExceptionHandler {

Context mContent;

private CrashExceptionHandler() {

}

public CrashExceptionHandler(Context context) {
    this.mContent = context;
}

@Override
public void uncaughtException(Thread t, Throwable e) {
    String errorStr= "";
    for (StackTraceElement obj:e.getStackTrace()) {
        errorStr +=" | "+obj.getFileName()+":"+obj.getClassName()+":"+obj.getMethodName()+":"+obj.getLineNumber();
    }
    // save into file or in log....
}

}

【讨论】:

  • 对于应用程序中的每次崩溃,这将不会显示 android 崩溃对话框。
  • 谢谢。我将实施此解决方案并对其进行测试。我希望能抓住问题。会让你知道
  • 我实现了它但仍然没有用。@Override public void uncaughtException(Thread t, Throwable e) { String errorStr =this.mContent.getPackageName(); for (StackTraceElement obj : e.getStackTrace()) { errorStr += " | " + obj.getFileName() + ":" + obj.getClassName() + ":" + obj.getMethodName() + ":" + obj.getLineNumber(); } // save into file or in log.... Crashlytics.log( " Crashlytics application level: " + errorStr); } 可能这是错误的实现。
  • @ kuber:您的解决方案适用于正常崩溃。我产生了崩溃并进行了调试,并且调用并执行了您的代码。但是它没有检测到我的问题。
  • 可能是您遇到了其他错误,直到现在我都收到了我所面临的所有崩溃报告,您应该尝试 crashlytic,而不是,
【解决方案2】:

第 1 步: 你必须像这样在 gradle 中添加 crashlytics: implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar')

第 2 步:调用 Fabric.with(this, new Crashlytics());在你的第一个活动中

请注意,您必须在 Fabrics 中创建帐户。此外,您已将 Fabric 插件添加到您的 android 工作室。 这样崩溃报告就会发送到您注册的电子邮件中

【讨论】:

  • 已添加 Crashlytics 帐户。并经过测试和工作,但没有发现问题。我正在通过添加 Crashlytics 代码来编辑我的问题
猜你喜欢
  • 2014-07-02
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 2011-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多