Java 启动新活动时从alertdialog引发的NullPointerException

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

我正在为android手机应用程序开发一个异常处理程序。我正在尝试链接错误框上的肯定提交报告按钮,以指导用户联系活动。。。联系支持页面。当用户按下Submit按钮时,将从我相信的意图上下文中抛出NullPointerException。我已经尝试了ExceptionHandler.this、getApplicationcontext、getBaseContext,但似乎什么都不起作用,我不想经历设置自定义配置文件的麻烦,因为我有点赶时间,但我已经被这个问题困扰了好几个小时

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等上下文启动您的活动;