我正在尝试使用HttpURLConnection()
从我的服务器将图像加载到我的Android应用中。但我得到了上述错误。发生错误的代码如下。从downloadBitmap
函数调用doInBackground()
函数。提前谢谢。
private Bitmap downloadBitmap(String url) {
Log.d("msg", "in download bitmap");
HttpURLConnection urlConnection = null;
try {
Log.d("msg", url);
URL uri = new URL(url);
urlConnection = (HttpURLConnection) uri.openConnection();
//urlConnection.setDoOutput(true);
int statusCode = urlConnection.getResponseCode();
Log.d("status",statusCode+"");
if (statusCode != HttpStatus.SC_OK) {
Log.d("msg","returning null");
return null;
}
InputStream inputStream = urlConnection.getInputStream();
if (inputStream != null)
{
Log.d("msg","in download if");
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
return bitmap;
}
} catch (Exception e) {
urlConnection.disconnect();
Log.w("ImageDownloader", "Error downloading image from " + url);
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
return null;
}
有时我会在下面的堆栈跟踪中得到另一个错误
07-26 02:21:45.282: E/AndroidRuntime(1031): FATAL EXCEPTION: AsyncTask #2
07-26 02:21:45.282: E/AndroidRuntime(1031): java.lang.RuntimeException: An error occured while executing doInBackground()
07-26 02:21:45.282: E/AndroidRuntime(1031): at android.os.AsyncTask$3.done(AsyncTask.java:299)
07-26 02:21:45.282: E/AndroidRuntime(1031): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
07-26 02:21:45.282: E/AndroidRuntime(1031): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
07-26 02:21:45.282: E/AndroidRuntime(1031): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
07-26 02:21:45.282: E/AndroidRuntime(1031): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-26 02:21:45.282: E/AndroidRuntime(1031): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
07-26 02:21:45.282: E/AndroidRuntime(1031): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
07-26 02:21:45.282: E/AndroidRuntime(1031): at java.lang.Thread.run(Thread.java:841)
07-26 02:21:45.282: E/AndroidRuntime(1031): Caused by: java.lang.NullPointerException
07-26 02:21:45.282: E/AndroidRuntime(1031): at com.example.listview.List$ImageDownloaderTask.downloadBitmap(List.java:464)
07-26 02:21:45.282: E/AndroidRuntime(1031): at com.example.listview.List$ImageDownloaderTask.doInBackground(List.java:372)
07-26 02:21:45.282: E/AndroidRuntime(1031): at com.example.listview.List$ImageDownloaderTask.doInBackground(List.java:1)
07-26 02:21:45.282: E/AndroidRuntime(1031): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-26 02:21:45.282: E/AndroidRuntime(1031): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
07-26 02:21:45.282: E/AndroidRuntime(1031): ... 4 more
07-26 02:21:45.371: W/dalvikvm(1031): threadid=13: thread exiting with uncaught exception (group=0x41465700)
07-26 02:21:45.371: I/Process(1031): Sending signal. PID: 1031 SIG: 9