Я пытаюсь разобрать файл csv на сервере, используя AsyncTask
. Это мой код:Android NullPointerException lock == null
@Override
protected String doInBackground(String... params) {
InputStream inStream = null;
URL stockURL = null;
try {
stockURL = new URL("http://antoniofalcone.it/fantavoti/gazz.csv");
} catch (MalformedURLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
BufferedReader input = null;
try {
input = new BufferedReader(new InputStreamReader(stockURL.openStream()));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String line = "";
try {
while ((line = input.readLine()) != null) {
String[] colums = line.split(",");
if (colums.length > 13) {
Log.d("CSVParser", "Skipping Bad CSV Row");
continue;
}
}
} catch (IOException e) {
e.printStackTrace();
}
return "All Done!";
}
Я получаю NullPointerException: lock == null. Как я могу это исправить? Это полный LogCat:
08-31 21:42:28.918: E/OpenGLRenderer(2774): Getting MAX_TEXTURE_SIZE from GradienCache
08-31 21:42:28.918: E/AndroidRuntime(2774): FATAL EXCEPTION: AsyncTask #1
08-31 21:42:28.918: E/AndroidRuntime(2774): Process: com.example.task, PID: 2774
08-31 21:42:28.918: E/AndroidRuntime(2774): java.lang.RuntimeException: An error occured while executing doInBackground()
08-31 21:42:28.918: E/AndroidRuntime(2774): at android.os.AsyncTask$3.done(AsyncTask.java:300)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
08-31 21:42:28.918: E/AndroidRuntime(2774): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.lang.Thread.run(Thread.java:841)
08-31 21:42:28.918: E/AndroidRuntime(2774): Caused by: java.lang.NullPointerException: lock == null
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.io.Reader.<init>(Reader.java:64)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.io.InputStreamReader.<init>(InputStreamReader.java:122)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.io.InputStreamReader.<init>(InputStreamReader.java:59)
08-31 21:42:28.918: E/AndroidRuntime(2774): at com.example.task.MainActivity$PostTask.doInBackground(MainActivity.java:85)
08-31 21:42:28.918: E/AndroidRuntime(2774): at com.example.task.MainActivity$PostTask.doInBackground(MainActivity.java:1)
08-31 21:42:28.918: E/AndroidRuntime(2774): at android.os.AsyncTask$2.call(AsyncTask.java:288)
08-31 21:42:28.918: E/AndroidRuntime(2774): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
08-31 21:42:28.918: E/AndroidRuntime(2774): ... 4 more
08-31 21:42:28.922: E/OpenGLRenderer(2774): MAX_TEXTURE_SIZE: 16384
08-31 21:42:28.926: E/OpenGLRenderer(2774): Getting MAX_TEXTURE_SIZE from Caches::initConstraints()
08-31 21:42:28.934: E/OpenGLRenderer(2774): MAX_TEXTURE_SIZE: 16384
Это не значит, что вы уже задали [близкий идентичный вопрос] (http://stackoverflow.com/questions/25594817/nullpointer-asynctask-return) один раз сегодня на другом посту, который меня беспокоит. Это факт, что код, который вы публикуете, по-прежнему будет иметь ** SAME BUGS **, как указано в ответах в вашем предыдущем вопросе. Ваш код продолжает проглатывать исключения с помощью блока try/catch, а затем ** ПРОДОЛЖАЕТСЯ ** без возврата - как будто никогда не было ошибки. И вы удивляетесь, почему ваша программа рушится! – selbie
И что еще? Что я могу сделать, чтобы исправить мой код? @selbie – slash89mf