2016-03-15 95 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