2011-11-08 76 views
0

我有一個不時崩潰的動態壁紙,我想收穫整合ACRA(http://code.google.com/p/acra/)在谷歌電子表格中生成和收集crashreports的好處。如何從動態壁紙使用ACRA?

但是我無法將ACRA整合到我的動態壁紙中。以下是我試過到目前爲止:

  1. 遵循的基本設置指南(http://code.google.com/p/acra/wiki/BasicSetup
  2. 初始化ACRA與ACRA.init(WallpaperService.getApplication());WallpaperService.onCreate()
  3. 註釋WallpaperService與@ReportsCrashes(formKey = "dFhXY3Y4N2NXXXXXXXXwM1g3Z1FZUVE6MQ", mode = ReportingInteractionMode.TOAST, forceCloseDialogAfterToast = false, resToastText = R.string.crash_text_toast)

當我構建和部署應用程序,它只是像以前一樣崩潰,並且ACRA未啓用。

看來這個問題源於ACRA期望應用程序的一個子類被註釋的事實。

我正在編譯我的應用程序的Android 2.1更新和使用最新版本的ACRA(4.23截至現在),並在Android 2.3.4手機上運行。

任何幫助都比歡迎!

+0

我有一個解決方案allready,但由於我是新的stackoverflow我不允許在另外5個小時內提交我的解決方案! :-/ 好吧。這是一個鏈接到我的最小補丁,使其工作:http://groups.google.com/group/acra-discuss/browse_thread/thread/752d9318d44795ca –

回答

1

我錯過了基本的事實,即Android動態壁紙可以有一個可選的類,從其AndroidManifest.xml引用的android.app.Application引用。

使用此類是在您的牆紙中包含ACRA的最佳方式,因爲它允許ACRA在壁紙生命週期的最早時刻開始。

只需在您的項目中創建一個擴展android.app.Application的類,然後從清單的應用程序元素中的android:name屬性中將其命名即可。例。

在您的清單:

<application 
android:debuggable="true" 
android:icon="@drawable/icon" 
android:label="@string/app_name" 
android:name=".MyApplication" > 

在所有MyApplication。java:

package com.mycompany.myapp; 

import org.acra.ACRA; 
import org.acra.ReportingInteractionMode; 
import org.acra.annotation.ReportsCrashes; 

@ReportsCrashes(resDialogIcon = R.drawable.icon, resToastText = R.string.crash_text_toast, formKey = "dFhXY3YXXXXXXXXXXXXXXZUVE6MQ", mode = ReportingInteractionMode.TOAST, forceCloseDialogAfterToast = false) 
public class MyApplication extends android.app.Application { 
    @Override 
    public void onCreate() { 
     ACRA.init(this); 
     super.onCreate(); 
    } 
} 
0

我對此進行了進一步研究,發現ACRA 4.2.3版本不支持動態壁紙。我決定修補它來增加這種支持。該補丁可以在this thread中找到。

這裏是一個小總結:

  1. 補丁ACRA以支持在init(),按照在上面的鏈接螺紋的第二個參數。
  2. 註釋WallpaperService類,因爲您將按照ACRA documentation註釋Application類。
  3. 初始化ACRA在WallpaperService像這樣的onCreate()法新init()功能:ACRA.init(getApplication(),this);

我還沒有exhastively進行了測試,可能會有很多的bug。但至少這是一個開始。我現在在電子表格中得到祝酒詞和一些數據,而不是討厭的吐司。