2016-04-14 5 views
1

Я внедрил ACRA 4.8.5 в своем приложении, и он инициализирован и включен, и все, но когда я сталкиваюсь с ошибкой, он не создает отчет ... Единственные два связанных журнала ACRA I есть являются:ACRA не создает отчет

I/ACRA: ACRA is enabled for com.mydomain.myapp, initializing... 

и

E/ACRA: ACRA caught a RuntimeException for com.mydomain.myapp 

у меня есть это в моем классе приложения

@ReportsCrashes(reportSenderFactoryClasses = {ACRASenderFactory.class}) 

и

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

Вот мой ACRASenderFactory класс

public class ACRASenderFactory implements ReportSenderFactory { 
    public ACRASenderFactory(){ 
     Log.e("ACRA", "Create Sender Factory"); 
    } 
    @NonNull 
    @Override 
    public ReportSender create(Context context, ACRAConfiguration acraConfiguration) { 
     Log.e("ACRA", "Return Report Sender"); 
     return new ACRAReportSender(); 
    } 
} 

и вот мой ACRAReportSender класс

public class ACRAReportSender implements ReportSender { 
    public ACRAReportSender(){ 
     Log.e("ACRA", "Report Sender created"); 
    } 
    @Override 
    public void send(Context context, CrashReportData crashReportData) throws ReportSenderException { 
     Log.e("ACRA", "Trying to send crash report"); 
     String reportBody = createCrashReport(crashReportData); 
     // Send body using email 
     Intent emailIntent = new Intent(Intent.ACTION_SEND); 
     // Set type to "email" 
     emailIntent.setType("vnd.android.cursor.dir/email"); 
     String to[] = {"[email protected]"}; 
     emailIntent.putExtra(Intent.EXTRA_EMAIL, to); 
     // Text 
     emailIntent.putExtra(Intent.EXTRA_TEXT, reportBody); 
     // Set the subject 
     emailIntent.putExtra(Intent.EXTRA_SUBJECT, "ACRA Crash Report"); 
     context.startActivity(Intent.createChooser(emailIntent, "Send crash to developpers by email ...")); 
    } 
    private String createCrashReport(CrashReportData crashReportData){ 
     StringBuilder body = new StringBuilder(); 
     body.append("Device : " + crashReportData.getProperty(ReportField.BRAND) + " - " + crashReportData.getProperty(ReportField.PHONE_MODEL)) 
       .append("\n") 
       .append("Android Version : " + crashReportData.getProperty(ReportField.ANDROID_VERSION)) 
       .append("\n") 
       .append("App Version : " + crashReportData.getProperty(ReportField.APP_VERSION_CODE)) 
       .append("\n") 
       .append("STACK TRACE : \n" + crashReportData.getProperty(ReportField.STACK_TRACE)); 
     return body.toString(); 
    } 
} 

Я действительно не знаю, почему это не работает .. Я также позволил Интернет в мой манифест и задайте имя моего приложения.

Любая помощь была бы действительно оценена! Спасибо!

ответ

-1

Моя проблема (я думаю) заключается в том, что я развиваюсь для API 15 и выше. Использование ACRA 4.8.5 могло быть проблемой, поскольку использование ACRA 4.7.0 работает просто отлично!

2

Как обсуждалось в выпуске ACRA GitHub, ACRA уже давно поставляется как AAR. Поэтому вам нужно построить и включить AAR, а не JAR (который вы, должно быть, выкопали из AAR).

Для использования ACRA требуются сервисы и ресурсы Android.

Смежные вопросы