Всем доброго времени суток!
Почему всплывает сообщение об ошибке такого вида
02-25 21:13:41.714 16207-16207/com.example E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
При попытке инициализировать файл
File file = new File(getActivity().getFilesDir(), "myfile");
Изначально, у меня вызов класса отвечающего за сохранение объекта в файле, был прописан в методе фрагмента onPause(); и все было хорошо, ошибок не было, однако такой метод мне не подходил, ибо файл должен сохраняться по нажатию на элемент listview, а сам listview находится в другом фрагменте, и при попытке вызвать класс из другого фрагмента завершалось
java.lang.NullPointerException
Я решил поступить по-другому, и добавить весь код в AsyncTask, но все равно, вылетает с той же ошибкой
Вот код:
public class onWriteFile extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... params) {
File file = new File(getActivity().getFilesDir(), "myfile");
if (file.exists() == false) {
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Log.e("onWriteFile", "Файл не готов, создание нового файла для записи");
}
FileOutputStream f = null;
try {
f = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
ObjectOutputStream s = null;
try {
s = new ObjectOutputStream(f);
} catch (IOException e) {
e.printStackTrace();
}
try {
s.writeObject(array); //Я записываю List
} catch (IOException e) {
e.printStackTrace();
}
try {
s.close();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void voids) {
super.onPostExecute(voids);
Log.e("onWriteFile", "onPostExecute прошел");
}
}