在我的应用程序中,我有3个活动,
1-Splash,2-MainActivity,3-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);
我的问题:
谢谢。
答案 0 :(得分:0)
在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....
}
}
答案 1 :(得分:0)
步骤1: 您必须像这样在gradle中添加crashlytics:Implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar')
第2步:调用Fabric.with(this,new Crashlytics());在您的第一次活动中
请注意,您必须在Fabrics中创建帐户。另外,您已将Fabric插件添加到android studio。 这样崩溃报告将发送到您的注册电子邮件中