我开发了Android应用,但在某些情况下我的应用force close
如果force close
在任何时间发生,我如何向开发者发送包含详细信息的电子邮件?
答案 0 :(得分:15)
ACRA库将满足您的要求。您只需要设置电子邮件。教程和设置已定义为here.
在lib中使用.jar下载库
您只需要定义Application类并在应用程序类之上编写以下代码并覆盖onCreate()
这样的方法
@ReportsCrashes(formKey = "", // will not be used
mailTo = "reports@yourdomain.com",
mode = ReportingInteractionMode.TOAST,
resToastText = R.string.crash_toast_text)
public class MyApplication extends Application {
@Override
public void onCreate() {
ACRA.init(this);
super.onCreate();
}
}
多数民众赞成。电子邮件操作将打开,其正文包含崩溃报告。
答案 1 :(得分:3)
您可以使用现成的APi,例如BugSence和crittercism
实施SDK后,您将收到粉碎报告 如果您有
,请将粉碎日志记录到您的电子邮件中对于BugSance 下载SDK
import com.bugsense.trace.BugSenseHandler;
确保您还添加了
行 <uses-permission android:name="android.permission.INTERNET" />
到您应用的AndroidManifest.xml文件中。 BugSense使用此权限发送崩溃报告和性能指标。
在setContentView之前在您的活动中添加BugSenseHandler。那你就准备好了!
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BugSenseHandler.initAndStartSession(Context, APIKEY);
setContentView(R.layout.main);
//rest of your code here
}
InitAndStartSession方法安装BugSense异常处理程序和性能监视器。然后,它会发送所有以前保存的崩溃报告和性能指标。同时,它会为您的活动开始一个新会话。
以下是有关如何使用InitAndStartSession的示例:
BugSenseHandler.initAndStartSession(MyActivity.this, "YOURAPIKEY");
每当您想显式启动会话时,您可以在活动的onStart方法中使用startSession方法,如下所示:
BugSenseHandler.startSession(MyActivity.this);
每当您想要关闭会话时,您可以使用closeSession方法,如下所示:
BugSenseHandler.closeSession(MyActivity.this);
关闭会话将关闭当前会话,为您的用户提供更好的会话跟踪。
如果要手动清除所有已保存的数据,请使用BugSenseHandler.flush(上下文)方法:
BugSenseHandler.flush(MyActivity.this);