ACRA崩溃报告是否还需要服务权限?

时间:2016-03-15 14:17:16

标签: android acra

整合崩溃报告的ACRA documentation包含3个简单步骤:

1 - Install ACRA library

2 - 将以下内容添加到 AndroidManifest.xml

<!-- in the manifest, not the application tag -->
<uses-permission android:name="android.permission.INTERNET" />

<application ... android:name=".MyApplication">
    ...
</application>

3 - 创建一个与上面同名的新java类&#39; MyApplication&#39;:

import org.acra.*;
import org.acra.annotation.*;

@ReportsCrashes(formUri = "http://www.yourselectedbackend.com/reportpath")
public class MyApplication extends Application {
  @Override
  public void onCreate() {
    // The following line triggers the initialization of ACRA
    super.onCreate();
    ACRA.init(this);
  }
}

那应该是它。我认为这些说明有点过时,AndroidManifest.xml从那时起已经发展。

我还needed在我的<application> ... </application>中添加以下内容以使其正常运行:

<service android:name="org.acra.sender.SenderService" />

问题:我做错了什么或者Android要求是否已经发展并且我正确地做到了?

无论哪种方式,我也想分享/记录我的步骤,以防其他人遇到同样的问题。

1 个答案:

答案 0 :(得分:7)

可以在ACRA的GitHub Wiki上找到更新的基本设置说明:https://github.com/ACRA/acra/wiki/BasicSetup

  

声明SenderService

     

ACRA(4.8+)使用SenderService发送报告,因此需要在AndroidManifest中进行配置。

     

如果您使用清单合并,则会自动为您包含SenderService。否则,您还需要配置将发送报告的服务。它应该看起来像:

    <service
        android:name="org.acra.sender.SenderService"
        android:exported="false"
        android:process=":acra" />
  

注意android:process确保服务在:acra进程中运行。目的是该流程与应用程序的默认流程不同,以确保即使您的应用程序在崩溃时处于关闭模式也可以发送报告。

文档网站可能尚未使用GitHub网站上的最新更新进行更新。