Я тестирую свое приложение на телефоне LG Eve. У меня есть приложение, которое пытается загрузить что-то из Интернета, и когда оно генерирует исключение, предполагается запустить alertdialog, указав, что произошла ошибка. Когда телефон не имеет сигнала Wi-Fi, программа вылетает из файла builder.create() (см. Код ниже). Однако, когда есть сигнал Wi-Fi, и исключение генерируется чем-то другим (например, опечаткой в URL-адресе), диалог запускается так, как он должен. Какую-либо подсказку, почему это может быть?Ошибка приложения при выполнении AlertDialog.Builder create() method - Android
Код для onCreateDialog:
@Override
protected Dialog onCreateDialog(int id){
Dialog d = null;
switch (id){
case DIALOG_DATA_ERROR_ID:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getResources().getString(R.string.error_data));
builder.setCancelable(false);
builder.setNeutralButton("OK", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface d, int id){
d.cancel();
}
});
d = builder.create();
break;
}
return d;
}
Код для AsyncTask, который вызывает ShowDialog:
private static class DownloadJSONTask extends AsyncTask<String, Void, String>{
private ProgressDialog dialog;
private Activity parent;
private JSONParserInterface jsonParser;
public DownloadJSONTask(Activity parent, JSONParserInterface jsonParser){
this.parent = parent;
this.jsonParser = jsonParser;
}
protected void onPreExecute(){
dialog = ProgressDialog.show(parent, "Loading", "Please Wait...", true);
}
protected String doInBackground (String... urls){
try {
return HttpHelper.getResponse(urls[0]);
}catch (Exception e){
dialog.cancel();
parent.showDialog(BoomSetListActivity.DIALOG_DATA_ERROR_ID);
}
return null;
}
protected void onPostExecute(String json){
dialog.cancel();
if (jsonParser != null) jsonParser.parse(json);
}
}
Можете ли вы показать logcat/full stacktrace для исключений? –