2012-09-11 38 views
5

Tôi đang cố gắng cài đặt hệ thống báo cáo sự cố ACRA cho dự án Android của mình. Bây giờ, dự án của tôi đã mở rộng một lớp, lớp Activity. Làm thế nào tôi có thể thực hiện dự án Acra sau đó?Acra: cài đặt, mở rộng Ứng dụng - Hoạt động?

Vì chúng có trạng thái bình thường, bạn phải tạo một lớp học. MyApplication và mở rộng nó bằng Ứng dụng. Vì tôi đã mở rộng lớp Activity nên tôi không biết phải làm gì ... Họ nói: Nếu ứng dụng của bạn đã chứa một lớp con Ứng dụng, hãy thêm ACRA vào lớp này; tuy nhiên, tôi không biết làm thế nào tôi nên làm điều này ..

Cảm ơn!

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

Trả lời

2

Chỉ cần tạo một lớp MyApplication mà kéo dài từ Application, làm những gì họ nói về trọng onCreate() và sau đó đi đến AndroidManifest của bạn.

Bạn cần có một số <application> với các giá trị như android:label hoặc android:theme. Chỉ cần thêm android:name=".MyApplication" vào đó và bạn đã sẵn sàng.

Hãy nhớ rằng nếu gói của bạn là com.example.test, MyApplication phải ở đó. Nếu bạn muốn đặt MyApplication ở bất kỳ nơi nào khác, bạn phải trỏ đến vị trí của nó.

Ví dụ: nếu gói của bạn là com.example.testMyApplication là trong com.example.test.application, bạn phải thêm android:name=".application.MyApplication vào tệp kê khai của mình. Tôi mạnh mẽ khuyên bạn nên sử dụng một gói chỉ dành cho Ứng dụng của bạn, vì nó phun dự án của bạn và làm cho nó dễ quản lý hơn và dễ dàng hơn.

+0

Vâng, tôi đã làm điều đó và điều đầu tiên Tôi nhận thấy rằng ứng dụng của tôi không hoạt động nữa ...: s 09-11 11: 00: 36.682: W/dalvikvm (6090): threadid = 1: thoát ra với ngoại lệ không bắt buộc (nhóm = 0x4001d560) 09-11 11: 00: 36.682: E/ACRA (6090): ACRA bắt được ngoại lệ RuntimeException cho com.droid. Xây dựng báo cáo. –

+0

Có "Nguyên nhân bởi: ...." với một ngoại lệ lồng nhau khác trong ngăn xếp không? Điều này sẽ cung cấp cho bạn một ý tưởng về những gì đã đi sai. –

-1

Một lớp con ứng dụng được yêu cầu để duy trì trạng thái ứng dụng toàn cầu, không cần thiết cho mọi ứng dụng để phân lớp nó. Nếu ứng dụng của bạn chưa có, bạn có thể tạo nó.

Ví dụ:

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

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

bạn cũng nên tuyên bố trong file manifest như đã nêu trong hướng dẫn.

1

Tôi đã đăng một hướng dẫn chi tiết. Điều này cho phép bạn đi qua thiết lập ACRA cho dự án hiện tại và cấu hình nó để gửi một email đến địa chỉ email của bạn. Link

0

Ứng dụng được sử dụng do tệp kê khai. Trong biểu hiện, nó chỉ là để thêm video này vào thẻ ứng dụng (với tất cả các hoạt động bên trong):

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" > 

Do khởi tạo dễ dàng (vì nó sẽ tự động khởi tạo bởi Hệ thống Android khi khởi động) nó sẽ không bao giờ báo cáo. Nó có thể sụp đổ ngay lập tức khi khởi động và vẫn báo cáo. Vì vậy, nó là một thiết lập thực sự thông minh.

lớp ứng dụng của tôi trông như thế này:

@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); 

    } 



} 

Nếu bạn cho một trường hợp đang sử dụng căn cứ hỏa lực, bạn có thể sử dụng cả hai cùng nhau trong lớp ứng dụng mở rộng tương tự mà không cần bất kỳ vấn đề.Tôi đã thử nó bản thân mình và nó làm việc, không có vấn đề với báo cáo lỗi hoặc Firebase.

Bên cạnh đó, các liên kết mới cho ACRA tại là trên Github: https://github.com/ACRA/acra/wiki/BasicSetup

Tôi trả lời này bởi vì nó đã quá lâu câu trả lời đã đến và nó cần một bản cập nhật

Các vấn đề liên quan