2015-08-03 2 views
-1

Я разрабатываю обработчик исключений для приложения телефона Android. Я пытаюсь связать положительную кнопку Submit Report в окне ошибки, чтобы направить пользователя на ContactActivity ... страницу поддержки контактов. Когда пользователь нажимает кнопку «Отправить», исключение NullPointerException выбрасывается из контекста предполагаемого намерения. Я попробовал ExceptionHandler.this, getApplicationcontext(), getBaseContext(), и ничего не работает, и я не хочу испытывать проблемы с настройкой настраиваемого профиля, потому что я вроде бы спешу, но я был в тупике по этой проблеме часами.NullPointerException вызывается из alertdialog при запуске новой активности

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){ 

} 

} 
+1

журнала регистрации ошибок пожалуйста. –

+0

Опубликовать журнал ошибок и какая строка вы получите ошибку? – Piyush

+0

Как мне получить к ним доступ? –

ответ

2

AFAIK, если вы хотите ExceptionHandler просто показать предупреждение, что вам не нужно, чтобы расширить BaseActivity (ваш настроить активность). Например, если вы хотите позвонить ExceptionHandler из MainActivity, вы можете сделать, как этот

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)); 

Надеется, что это помогает :)