Android 使用带有tracepot的ACRA作为后端
作为一个学校项目的一部分,我刚刚完成了我的第一个android应用程序。我的一个朋友在尝试探索应用程序中的一个活动时遇到了问题。因此,我寻找解决方案,以便在崩溃报告出现时修复错误。我遇到了ACRA。我按照其中一个线程将ACRA安装到我的应用程序中..Android 使用带有tracepot的ACRA作为后端,android,acra,Android,Acra,作为一个学校项目的一部分,我刚刚完成了我的第一个android应用程序。我的一个朋友在尝试探索应用程序中的一个活动时遇到了问题。因此,我寻找解决方案,以便在崩溃报告出现时修复错误。我遇到了ACRA。我按照其中一个线程将ACRA安装到我的应用程序中.. 结果:当崩溃发生时,gmail应用程序在设备中启动,用户(如果他愿意的话)将通过电子邮件发送崩溃报告..但并非所有用户都愿意..我在某个SO线程的评论中发现,一些开发人员使用tracepot。 因此,我在formUri中使用了他们的链接进行集成,但
结果:当崩溃发生时,gmail应用程序在设备中启动,用户(如果他愿意的话)将通过电子邮件发送崩溃报告..但并非所有用户都愿意..我在某个SO线程的评论中发现,一些开发人员使用tracepot。
因此,我在formUri中使用了他们的链接进行集成,但在tracepot上探索我的帐户时,我什么也得不到。我有什么地方做错了吗(或者如果有比使用tracepot a后端更好的解决方案,请建议/解释或链接一个好的教程,谢谢!) Java(编辑后) 编辑: 如果我使用http和电子邮件,则在logcat中显示msg:
09-17 18:37:33.700 14329-14812/ma.ac.iav.menunaviagtion:acra W/ACRA: ma.ac.iav.menunaviagtion reports will be sent by email (if accepted by user).
09-17 18:37:33.703 14329-14812/ma.ac.iav.menunaviagtion:acra I/ACRA: Sending report /data/user/0/ma.ac.iav.menunaviagtion/app_ACRA-approved/2018-09-17T18:37:33.441+01:00-IS_SILENT.stacktrace
如果我只使用http:
09-17 22:47:00.648 20116-20137/ma.ac.iav.myapplication:acra E/ACRA: Failed to send crash report for /data/user/0/ma.ac.iav.myapplication/app_ACRA-approved/2018-09-17T22:44:52.199+00:00-IS_SILENT.stacktrace
实施:
compile 'ch.acra:acra:4.9.2'
F43nd1r的LOGCAT
09-18 01:39:49.631 18508-18803/? E/AndroidRuntime: FATAL EXCEPTION: Thread-5
Process: ma.ac.iav.myapplication, PID: 18508
java.lang.InternalError: Thread starting during runtime shutdown
at java.lang.Thread.nativeCreate(Native Method)
at java.lang.Thread.start(Thread.java:733)
at android.app.SharedPreferencesImpl.startLoadFromDisk(SharedPreferencesImpl.java:119)
at android.app.SharedPreferencesImpl.<init>(SharedPreferencesImpl.java:112)
at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:392)
at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:373)
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash.getLastCrashTimestamp(CustomActivityOnCrash.java:673)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash.hasCrashedInTheLastSeconds(CustomActivityOnCrash.java:683)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash.access$200(CustomActivityOnCrash.java:52)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash$1.uncaughtException(CustomActivityOnCrash.java:112)
at org.acra.builder.ReportExecutor.endApplication(ReportExecutor.java:269)
at org.acra.builder.ReportExecutor.dialogAndEnd(ReportExecutor.java:254)
at org.acra.builder.ReportExecutor.access$400(ReportExecutor.java:42)
at org.acra.builder.ReportExecutor$2.run(ReportExecutor.java:217)
09-18 01:39:49.631 18508-18803/?E/AndroidRuntime:致命异常:线程5
流程:ma.ac.iav.myapplication,PID:18508
java.lang.InternalError:运行时关闭期间线程启动
位于java.lang.Thread.nativeCreate(本机方法)
在java.lang.Thread.start(Thread.java:733)处
在android.app.SharedReferencesImpl.startLoadFromDisk上(SharedReferencesImpl.java:119)
在android.app.SharedReferencesImpl.(SharedReferencesImpl.java:112)
位于android.app.ContextImpl.getSharedReferences(ContextImpl.java:392)
位于android.app.ContextImpl.getSharedReferences(ContextImpl.java:373)
位于android.content.ContextWrapper.getSharedReferences(ContextWrapper.java:167)
位于cat.ereza.customactivityoncrash.customactivityoncrash.getLastCrashTimestamp(customactivityoncrash.java:673)
在cat.ereza.customactivityoncrash.customactivityoncrash.hasCrashed的最后几秒钟(customactivityoncrash.java:683)
在cat.ereza.customactivityoncrash.customactivityoncrash.access$200(customactivityoncrash.java:52)
位于cat.ereza.customactivityoncrash.customactivityoncrash$1.uncaughtException(customactivityoncrash.java:112)
位于org.acra.builder.ReportExecutor.endApplication(ReportExecutor.java:269)
位于org.acra.builder.ReportExecutor.dialogAndEnd(ReportExecutor.java:254)
访问org.acra.builder.ReportExecutor.access$400(ReportExecutor.java:42)
位于org.acra.builder.ReportExecutor$2.run(ReportExecutor.java:217)
您没有将所有必填字段发送到Tracepot
- 安卓版本
- 应用程序版本代码
- 应用程序\版本\名称
- 包裹名称
- 报告ID
- 堆栈跟踪
- 用户\应用\开始\日期
- 用户\u崩溃\u日期
- 安卓版本
- 应用程序版本代码
- 应用程序\版本\名称
- 包裹名称
- 报告ID
- 堆栈跟踪
- 用户\应用\开始\日期
- 用户\u崩溃\u日期
- 您没有将所有必需字段发送到Tracepot
reportSenderFactories
400:客户端错误 表示tracepot拒绝了您的报告。这可能有多个原因。若要找出问题所在,请在
ACRA.DEV_LOGGING=true;
之前调用ACRA.init
并使用ACRA
标记发布所有日志
另外请注意,ACRA
4.9.2
不支持android Oreo及以上版本,建议至少升级到ACRA4.11
,或仅升级到最新版本5.2.0
,默认情况下,如果存在邮件配置,ACRA 4将通过邮件发送,而不发送其他内容。
要使用这两种方法,您必须配置reportSenderFactories
400:客户端错误 表示tracepot拒绝了您的报告。这可能有多个原因。若要找出问题所在,请在
ACRA.DEV_LOGGING=true;
之前调用ACRA.init
并使用ACRA
标记发布所有日志
还要注意的是,ACRA
4.9.2
不支持android Oreo及以上版本,建议至少升级到ACRA4.11
,或者只升级到最新版本5.2.0
您使用的是哪种ACRA版本?@Martin我使用的是4.9.2版本这是我添加到gradle编译“ch.ACRA:ACRA:4.9.2”中的唯一版本你在用吗?@Martin我在用4.9.2版本这是我添加到gradle编译“ch.acra:acra:4.9.2”中的唯一一个版本谢谢你的信息Martin..但不幸的是它没有写出来..我已经更新了帖子,你会看到我用了你的条目..gmail应用程序仍然会启动,如果用户想发送崩溃报告..但是报告不是真的nt到tracepot..在编辑的帖子中,你会看到与我做的acraYeah相关的消息..然后什么都没有发生,你也使用tracepot吗?还是使用另一个后端?对不起!我再次尝试,没有电子邮件,我进入了logcat:09-17 22:45:22.904 19914-19989/ma.ac.iav.myapplication:acra E/acra:0/ma.ac.iav.myappli无法发送崩溃报告阳离子/app_ACRA-approved/2018-09-17T22:44:52.199+00:00-IS_SILENT.stacktracei在logcat中找到ACRA:400:客户端错误-请求将被丢弃我通过删除邮件发送和customreportcontent解决了问题现在崩溃报告将发送到tracepot.但是如果使用ACRA,Ereza/CustomActivityOnCrash将不起作用你知道吗为什么?谢谢你提供的信息Martin..但不幸的是,它没有写出来..我已经更新了帖子,你会看到我使用了你的条目..gmail应用程序仍然会启动,用户如果想发送崩溃报告..但是报告没有发送到tracepot..在编辑过的帖子中,你会看到与acraYeah相关的消息我做了
09-18 01:39:49.631 18508-18803/? E/AndroidRuntime: FATAL EXCEPTION: Thread-5
Process: ma.ac.iav.myapplication, PID: 18508
java.lang.InternalError: Thread starting during runtime shutdown
at java.lang.Thread.nativeCreate(Native Method)
at java.lang.Thread.start(Thread.java:733)
at android.app.SharedPreferencesImpl.startLoadFromDisk(SharedPreferencesImpl.java:119)
at android.app.SharedPreferencesImpl.<init>(SharedPreferencesImpl.java:112)
at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:392)
at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:373)
at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:167)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash.getLastCrashTimestamp(CustomActivityOnCrash.java:673)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash.hasCrashedInTheLastSeconds(CustomActivityOnCrash.java:683)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash.access$200(CustomActivityOnCrash.java:52)
at cat.ereza.customactivityoncrash.CustomActivityOnCrash$1.uncaughtException(CustomActivityOnCrash.java:112)
at org.acra.builder.ReportExecutor.endApplication(ReportExecutor.java:269)
at org.acra.builder.ReportExecutor.dialogAndEnd(ReportExecutor.java:254)
at org.acra.builder.ReportExecutor.access$400(ReportExecutor.java:42)
at org.acra.builder.ReportExecutor$2.run(ReportExecutor.java:217)