Вот код:
Thread clientThread = new Thread() {
@Override
public void run() {
try {
client = new Client();
quest = client.readFile();
Log.v("Client string", quest);
//File file = new File(myContext.getFilesDir(), "questionnaire.xml");
//BufferedWriter bw = new BufferedWriter(new FileWriter(file));
//bw.write(quest);
File tempFile = File.createTempFile("questionnaire", ".xml");
FileOutputStream fout = new FileOutputStream(tempFile);
PrintStream out = new PrintStream(fout);
out.println(quest);//InputStream stream = new ByteArrayInputStream(quest.getBytes("UTF-8"));
//getResources().op
try {
Serializer serializer = new Persister();
responseToQuestionnaire = serializer.read(ResponseToQuestionnaire.class, tempFile);
}
catch(Exception e) {}
Log.v("Let's seeeeee",responseToQuestionnaire.getQuestionnaireTemplate().toString());
} catch (Exception e1) {
e1.printStackTrace();
}
// try {
// OutputStreamWriter outputStreamWriter = new OutputStreamWriter(
// openFileOutput(currentQuestionnaire.getName(),
// Context.MODE_PRIVATE));
// outputStreamWriter.write(client.readFile());
// outputStreamWriter.close();
// } catch (IOException e) {
// Log.e("Exception", "File write failed: " + e.toString());
// }
}
};
clientThread.start();
Код генерирует исключение Null Pointer, даже если quest представляет собой строку полной длины, которая прекрасно печатается в журнале. Я пробовал несколько способов сохранения файла, но SimpleXML не сериализует строку... только файлы XML.
responseToQuestionnaire.getQuestionnaireTemplate()
— этоnull
, либоresponseToQuestionnaire
— этоnull
. Это так просто. Установите точку останова, используйте отладчик, проверьте это. Кстати, вы установили разрешения на чтение/запись во внешнее хранилище внутри вашегоAndroidManifest.xml
? - person Drew   schedule 19.03.2014