2012-09-11 10 views
5

Próbuję zainstalować system zgłaszania awarii ACRA do mojego projektu Android. Teraz mój projekt już rozszerza klasę, klasę aktywności. Jak mogę zatem wdrożyć projekt Acra?Acra: zainstalować, rozszerzyć aplikację - aktywność?

W stanie normalnym należy utworzyć klasę f.e. MyApplication i rozszerz go za pomocą aplikacji. Ponieważ już rozszerzam klasę aktywności, nie jestem pewien, co robić ... Mówią: jeśli Twoja aplikacja zawiera już podklasę aplikacji, dodaj ACRA do tej klasy; jednak nie wiem, jak powinienem to zrobić.

Dzięki!

http://code.google.com/p/acra/wiki/BasicSetup

Odpowiedz

2

Wystarczy utworzyć MyApplication klasę, która rozciąga się od Application, robić to, co mówią o przesłanianie onCreate() a następnie przejdź do AndroidManifest.

Powinieneś mieć <application> z wartościami takimi jak android:label lub android:theme. Po prostu dodaj tam android:name=".MyApplication" i możesz już iść.

Pamiętaj, że jeśli Twój pakiet to com.example.test, musi tam być MyApplication. Jeśli chcesz umieścić MyApplication gdziekolwiek indziej, musisz wskazać, gdzie to jest.

Jeśli na przykład pakiet to com.example.test i MyApplication w wersji com.example.test.application, musisz dodać android:name=".application.MyApplication do manifestu. Zdecydowanie polecam, abyś użył pakietu dla swojej aplikacji, ponieważ atomizuje twój projekt i sprawia, że ​​jest on znacznie łatwiejszy w zarządzaniu i łatwiejszy w obsłudze.

+0

Dobrze zrobiłem tylko to i pierwszą rzeczą Zauważam, że moja aplikacja już nie działa ...: s 09-11 11: 00: 36.682: W/dalvikvm (6090): threadid = 1: wątek wychodzący z nieprzechwyconym wyjątkiem (grupa = 0x4001d560) 09-11 11: 00: 36.682: E/ACRA (6090): ACRA przechwycił wyjątek RuntimeException dla com.droid. Budowanie raportu. –

+0

Czy istnieje "Powodowany przez: ...." z innym zagnieżdżonym wyjątku w stosie stacktrace? To powinno dać ci pojęcie, co poszło nie tak. –

-1

Podklasa aplikacji jest wymagana do utrzymywania globalnego stanu aplikacji, nie jest konieczne, aby każda aplikacja ją podklasowała. Jeśli aplikacja jeszcze jej nie ma, możesz ją utworzyć.

Przykład:

/* do ACRA imports */ 
@ReportsCrashes(formKey = "x-x-x-x-x-x") 
public class YourApplication extends Application{ 

public void onCreate(){ 
    ACRA.init(this); 
    super.onCreate(); 
} 
} 

należy również zadeklarować w pliku manifestu jak stwierdzono w samouczku.

1

Mam opublikowany szczegółowy samouczek. Umożliwia to skonfigurowanie ACRA dla istniejącego projektu i skonfigurowanie go tak, aby wysyłał e-maile na twój adres e-mail. Link

0

Aplikacja jest używana z powodu manifestu. W manifeście, to jest po prostu dodać do znacznika aplikacji (z wewnątrz wszystkich działań):

android:name=".MyApplication" 

Ex:

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:name=".MyApplication" 
    android:theme="@style/AppTheme" > 

Ze względu na łatwą inicjalizacji (jak to jest automatycznie inicjowany przez System Android po uruchomieniu) będzie nigdy nie zgłasza. Może się natychmiast zawiesić przy starcie i nadal raportować. To naprawdę sprytna konfiguracja.

Moja klasa aplikacja wygląda tak:

@ReportsCrashes(

    formUri = "https://backend.com", 
    customReportContent = { /* */ReportField.APP_VERSION_NAME, ReportField.PACKAGE_NAME,ReportField.ANDROID_VERSION, ReportField.PHONE_MODEL,ReportField.LOGCAT }, 
    mode = ReportingInteractionMode.TOAST, 
    resToastText = R.string.crash_toast_text 

) 

public class ACRAHandler extends Application { 


    @Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 


     final ACRAConfiguration config = new ConfigurationBuilder(this) 

       .build(); 
     // Initialise ACRA 
     ACRA.init(this, config); 

    } 



} 

Jeśli na przykład używasz Firebase można używać zarówno razem w tej samej klasie aplikacji rozciągające bez żadnych problemów.Sam go wypróbowałem i zadziałało, bez problemów z raportowaniem błędów lub Firebase.

Dodatkowo, nowe linki do Acra jest teraz na Github: https://github.com/ACRA/acra/wiki/BasicSetup

Odpowiedziałem to, bo to było tak dawno temu odpowiedzi przyszedł i to wymaga aktualizacji