Java 启动新活动时从alertdialog引发的NullPointerException
我正在为android手机应用程序开发一个异常处理程序。我正在尝试链接错误框上的肯定提交报告按钮,以指导用户联系活动。。。联系支持页面。当用户按下Submit按钮时,将从我相信的意图上下文中抛出NullPointerException。我已经尝试了ExceptionHandler.this、getApplicationcontext、getBaseContext,但似乎什么都不起作用,我不想经历设置自定义配置文件的麻烦,因为我有点赶时间,但我已经被这个问题困扰了好几个小时Java 启动新活动时从alertdialog引发的NullPointerException,java,android,android-alertdialog,android-sdk-2.3,Java,Android,Android Alertdialog,Android Sdk 2.3,我正在为android手机应用程序开发一个异常处理程序。我正在尝试链接错误框上的肯定提交报告按钮,以指导用户联系活动。。。联系支持页面。当用户按下Submit按钮时,将从我相信的意图上下文中抛出NullPointerException。我已经尝试了ExceptionHandler.this、getApplicationcontext、getBaseContext,但似乎什么都不起作用,我不想经历设置自定义配置文件的麻烦,因为我有点赶时间,但我已经被这个问题困扰了好几个小时 public clas
public class ExceptionHandler extends BaseActivity {
private String phoneModel = android.os.Build.MODEL;
private String phoneDevice = android.os.Build.DEVICE;
private String phoneVersion = android.os.Build.VERSION.RELEASE;
private String errorTag;
private Context context;
public ExceptionHandler (Context context, String tag){
this.context = context;
errorTag = tag;
}
public void alert(Exception e){
AlertDialog.Builder messageBox = new AlertDialog.Builder(this.context, AlertDialog.THEME_HOLO_DARK);
messageBox.setTitle("Oops...");
messageBox.setMessage("An error has occurred .\n\n" +
"Error: " + e.toString() + "\n" +
"Location: " + AtlasApplication.MenuTitle + "\n" +
"Phone Model: " + phoneModel + "\n" +
"Phone Device: " + phoneDevice + "\n" +
"API Version: " + phoneVersion + "\n");
messageBox.setPositiveButton("Send Report", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
try {
startActivityWithAnim(new Intent(context, ContactActivity.class));
//I have also tried (ContactActivity.getIntent(context))
}
catch(Exception e) {
alert(e);
}
}
});
messageBox.setNegativeButton("Close", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
});
messageBox.create();
messageBox.show();
}
public void reportError(Exception e){
}
}
好的,如果您只想让ExceptionHandler显示警报,您不需要将BaseActivity扩展为自定义活动。例如,如果要从MainActivity调用ExceptionHandler,可以这样做
ExceptionHandler exHandler = new ExceptionHandler(getApplicationContext(),"MAIN_ACTIVITY");
exHandler.alert(new Exception()); //Put your exception in the parameter.
如果要为ExceptionHandler创建新活动,则不需要在参数中传递上下文。对于NullPointerException,请尝试
context.startActivityWithAnim(new Intent(context,ContactActivity.class));
希望这对您有所帮助:发布错误日志以及您将在哪一行收到错误?我如何访问它们?您正在为活动定义自定义构造函数。这表明您可能正在尝试自己实例化活动,这肯定会出错//我还尝试过ContactActivity.GetIntentContext使用context.startActivityWithAnimnew Intentcontext、ContactActivity.class等上下文启动您的活动;