代码之家  ›  专栏  ›  技术社区  ›  صلي علي محمد - Atef Farouk

android crashlytics检测应用程序突然被破坏和消失

  •  0
  • صلي علي محمد - Atef Farouk  · 技术社区  · 7 年前

    在我的申请中,我有三项活动,

    1-Splash,2-main活动,3-Audio活动。

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

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

    在舱单的一部分下面

        <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捕获此类应用程序停止?
    • 还有别的办法抓住这次坠机吗?

    谢谢

    2 回复  |  直到 7 年前
        1
  •  0
  •   kuber singh    7 年前

    正在申请中。班

    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....
    }
    

    }

        2
  •  0
  •   anju jo    7 年前

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

    第2步:呼叫结构。用(这个,新的Crashlytics());在你的第一次活动中

    请注意,您必须在Fabrics中创建帐户。此外,您还将Fabric插件添加到android studio中。 这样坠机报告就会发送到你的注册邮箱