整合崩溃报告的ACRA documentation包含3个简单步骤:
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要求是否已经发展并且我正确地做到了?
无论哪种方式,我也想分享/记录我的步骤,以防其他人遇到同样的问题。
答案 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网站上的最新更新进行更新。