ACRA is crashing

I am using ACRA for crash reporting, but all of a sudden it is causing me some problems. My application won't start, I get a crash report notification, but tapping on it does nothing. Opening logcat, I can see the following entries:

 11-20 19:25:53.093: E/ACRA(16233): ACRA caught a RuntimeException exception for com.skipmorrow.phca. Building report.
 11-20 19:25:53.763: D/ApplicationPolicy(716): isStatusBarNotificationAllowed: packageName = com.skipmorrow.phca
 11-20 19:25:53.763: E/ACRA(16233): com.skipmorrow.phca fatal error : Unable to create application com.skipmorrow.phca.ACRA: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
 11-20 19:25:53.763: E/ACRA(16233): java.lang.RuntimeException: Unable to create application com.skipmorrow.phca.ACRA: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
 11-20 19:25:53.763: E/ACRA(16233):     at com.skipmorrow.phca.ACRA.onCreate(ACRA.java:89)

Not much to go on, but it looks like ACRA itself is having problems.

Here is my ACRA implementation class:

 package com.skipmorrow.phca;

 import org.acra.annotation.*;
 import org.acra.ReportingInteractionMode;

 import android.app.Application;

 @ReportsCrashes(
 formKey = "dFdSMXh...E6MQ",
 mode = ReportingInteractionMode.NOTIFICATION,
 resNotifTickerText = R.string.crash_notif_ticker_text,
 resNotifTitle = R.string.crash_notif_title,
 resNotifText = R.string.crash_notif_text,
 resNotifIcon = android.R.drawable.stat_notify_error, // optional. default is a warning sign
 resDialogText = R.string.crash_dialog_text,
 resDialogIcon = android.R.drawable.ic_dialog_info, //optional. default is a warning sign
 resDialogTitle = R.string.crash_dialog_title, // optional. default is your application name
 resDialogCommentPrompt = R.string.crash_dialog_comment_prompt, // optional. when defined, adds a user text field input with this text resource as a label
 resDialogOkToast = R.string.crash_dialog_ok_toast, // optional. displays a Toast message when the user accepts to send a report.
 logcatArguments = {
        "-t"
        ,"2000"
        ,"-v"
        ,"time"
        ,"PHCA_ActionCommand:D"
        ,"ActionParameterEditTextActivity:D"
        ,"ActionParameterSeekbarActivity:D"
        ,"PHCA_C2DMReceiver:D"
        ,"PHCA_CommonActivity:D"
        ,"PHCA_ConfigurationActionCommandChooser:D"
        ,"PHCA_ConfigurationAddNewAction:D"
        ,"PHCA_ConfigurationAddNewPage:D"
        ,"PHCA_ConfigurationAddNewPagelink:D"
        ,"PHCA_ConfigurationAddNewPageStatus:D"
        ,"PHCA_ConfigurationEditActionCommand:D"
        ,"PHCA_ConfigurationEditPageRefreshUpdateActivity:D"
        ,"PHCA_ConfigurationEditVariable:D"
        ,"PHCA_ConfigurationEditVariableValueSetting:D"
        ,"PHCA_ConfigurationLandingPage:D"
        ,"PHCA_ConfigurationPageChooserActivity:D"
        ,"PHCA_ConfigurationPageObjectChooserActivity:D"
        ,"PHCA_ConfigurationRefreshUpdateChooserActivity:D"
        ,"PHCA_DBAdapter:D"
        ,"PHCA_DragListener:D"
        ,"PHCA_DragNDropAdapter:D"
        ,"PHCA_DragNDropListView:D"
        ,"PHCA_DropListener:D"
        ,"PHCA_EditC2dmSettingsActivity:D"
        ,"PHCA_EditGlobalPrefsActivity:D"
        ,"PHCA_EnterFilenameForBackup:D"
        ,"PHCA_EnterPinActivity:D"
        ,"PHCA_EnterPinDialog:D"
        ,"PHCA_HttpNetworking:D"
        ,"PHCA_ListLabels:D"
        ,"PHCA_MyListArrayAdapter:D"
        ,"PHCA_Page:D"
        ,"PHCA_PageAction:D"
        ,"PHCA_PageChooserDialog:D"
        ,"PHCA_PageImageActivity:D"
        ,"PHCA_PageLink:D"
        ,"PHCA_PageListActivity:D"
        ,"PHCA_PageRefreshUpdate:D"
        ,"PHCA_PageStatus:D"
        ,"PHCA_PhcaActivity:D"
        ,"PHCA_PhcaAppWidgetConfigurator:D"
        ,"PHCA_PhcaAppWidgetProvider:D"
        ,"PHCA_PhcaMenu:D"
        ,"PHCA_PhcaPrefs:D"
        ,"PHCA_PhcaUtils:D"
        ,"PHCA_RemoveListener:D"
        ,"PHCA_SocketServerNetworking:D"
        ,"PHCA_Variable:D"
        ,"PHCA_VariableChooser:D"
        ,"PHCA_VariableSetting:D"
        ,"PHCA_VariableValueSettingChooser:D"
        ,"PHCA_VisiblePhcaPageObject:D"
        ,"PHCA_WidgetDialogResponseActivity:D"
        ,"PHCA_XmlFileChooser:D"
        ,"PHCA_XmlNodeCounter:D"
        ,"PHCA_XmlParser:D"
        ,"*:S"
        }
 )

 public class ACRA extends Application {
    @Override
     public void onCreate() {
         // The following line triggers the initialization of ACRA
        org.acra.ACRA.init(this); // <<<<====== LINE 89
         super.onCreate();
     }  
 }

One other clue (I think) is the fact that in my ACRA class, in the onCreate, I have to call init with the fully qualified

org.acra.ACRA.init(this)

EDIT I can't believe I left this out the first time. THIS IS LINE 89 in com.skipmorrow.phca.ACRA

In other projects where I have used ACRA, I didn't have to do that (and, in fact, the instructions call init() with just ACRA.init(this). Could that have something to do with it?


The crash is not within ACRA.

It is at line 89 of this class com.skipmorrow.phca.ACRA.onCreate(ACRA.java:89)

This is NOT an ACRA class. All ACRA classes are in the package org.acra. Not sure where com.skipmorrow.phca.ACRA comes from, but you need to look there.

链接地址: http://www.djcxy.com/p/66176.html

上一篇: 扩展应用程序类上的Android库项目转换错误

下一篇: ACRA正在崩溃