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下一篇: ACRA正在崩溃