ACRA崩溃报告是否也需要服务许可?

Cyr*_*lle 2 android acra

用于集成崩溃报告的ACRA文档包含3个简单步骤:

1 - 安装 ACRA

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

<!-- in the manifest, not the application tag -->
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)

<application ... android:name=".MyApplication">
    ...
</application>
Run Code Online (Sandbox Code Playgroud)

3 - 创建一个与上面的'MyApplication'同名的新java类:

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);
  }
}
Run Code Online (Sandbox Code Playgroud)

那应该是它.我认为指令有点过时,AndroidManifest.xml从那时起已经发展.

我还需要在我<application> ... </application>的内部添加以下功能:

<service android:name="org.acra.sender.SenderService" />
Run Code Online (Sandbox Code Playgroud)

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

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

Joe*_*Joe 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" />
Run Code Online (Sandbox Code Playgroud)

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

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