2014-01-06 38 views
0

我即将发布应用程序,并且在发布应用程序之前,我看到了有关您应该执行的操作的this stackoverflow question。它告诉我使用ACRA,所以我按照this page上的说明操作。确认ACRA正在工作

所以知道我有一个名为MyApplication像这样的类:

import android.app.Application; 
import org.acra.*; 
import org.acra.annotation.*; 

@ReportsCrashes(formKey = "", // will not be used 
    mailTo = "[email protected]", 
    mode = ReportingInteractionMode.TOAST, 
    customReportContent = { ReportField.APP_VERSION_CODE, ReportField.APP_VERSION_NAME, ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL, ReportField.CUSTOM_DATA, ReportField.STACK_TRACE, ReportField.LOGCAT }, 
    resToastText = R.string.crash_report_text) 
public class MyApplication extends Application { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 

     // The following line triggers the initialization of ACRA 
     ACRA.init(this); 
    } 
} 

现在显然,当我的应用程序崩溃,我认为用户应该能够以某种方式发送报告,所以我把一个空指针我的应用程序,但它只是崩溃,没有任何反应。我应该做其他事吗?

+0

即使它在我的模拟器上崩溃了@blackbelt? – Ogen

+0

不是@Clay,你已经将错误通知模式定义为Toast,那么当你的应用程序发生错误时,它应该向你显示Toast消息。 – GrIsHu

+0

您是否注册过您的应用程序并在Google控制台中生成密钥? – GrIsHu

回答

1

我猜你可能没有注册您的应用程序上BugSense

如果你要发送的崩溃reporst只有你depands。当您使用Google文档deprecated now)时,您必须使用从Google文档获得的formKey

如果要将报告存储在您自己的服务器上,可以将formKey字段留空。你唯一需要做的就是向你的服务器(formUri = ....)输入一个有效的网址。

其他字符串用于应该或不应该出现的对话类型。

不使用您自己的服务器,您可以使用BugSense。请参阅stackoverflow上的this线程。

  • 由于使用Google文档已弃用于ACRA。我建议你使用**BugSense**作为后端服务:

去他们的网站,并登入:http://www.bugsense.com/

2.创建一个新的项目,以监测BugSense网站,因此您将收到此应用程序的API Key

最后这行添加到您的应用程序类在你的项目:

@ReportsCrashes(formUri = “http://www.bugsense.com/api/acra?api_key=YOUR_API_KEY”,formKey = “”)

退房BugSense Docmentation

+0

我注册并获得api密钥等等。我让我的应用程序崩溃,但它没有发送任何东西。难道是因为它不能从一个android模拟器工作?它必须在真实设备上崩溃? – Ogen

+0

它显示你吐司? – GrIsHu

+0

嘿,它发送错误成功bugsense,我可以看到它。非常感谢。但是,敬酒没有显示。它只是说,不幸的是国际象棋已停止工作。我想让用户知道已发送崩溃报告。我怎样才能做到这一点? – Ogen