2016-03-15 62 views
1

ACRA documentation整合崩溃报告由3个简单的步骤:ACRA崩溃报告是否也需要服务许可?

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 - 创建一个与上述'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); 
    } 
} 

这就是它。我认为这些说明已经过时了,AndroidManifest.xml自那时起就有了进步。

我也needed添加以下我<application> ... </application>内为它的功能:

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

问题:我做得不对或有Android的需求演变和我做是正确的呢?

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

+1

“应该就是这样” - 至少如果您使用的是Android Studio,则几乎是这样。 “我认为这些说明有点过时了” - 并不是我知道的,但他们绝对是针对Android Studio进行了优化的。 “AndroidManifest.xml自那时起就有了进步” - 并非如此。有些东西你也可能放在与ACRA相关的清单中(例如,'org.acra.CrashReportDialog'''''''''''''''''''''''''''''''''''''''''),但是这些东西几乎都是选择加入的。 – CommonsWare

+1

另外,FWIW,我发布了[我的ACRA书籍章节](https://commonsware.com/blog/2015/12/17/book-excerpt-crash-reporting-acra。html)去年年底免费开放,它通过在Android Studio项目中设置ACRA。 – CommonsWare

回答

6

更高达最新的基本设置指令可以在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" /> 

NB了android:过程确保服务在运行:ACRA过程。意图是,该过程与应用程序的默认过程不同,以确保即使您的应用在崩溃时将处于关闭模式也能发送报告。

很可能是文档网站还没有更新与GitHub网站上的最新更新。

+0

如果您使用的是Android Studio并使用ACRA工件(即“如果您正在使用清单合并...”部分),则会自动添加''元素。如果您使用Eclipse或其他方式不使用Gradle或不使用ACRA AAR,则可能仍需要手动添加它。 – CommonsWare

+0

太棒了!较新的说明确实有一些对我有帮助的重要区别。谢谢! – Cyrille