1

I am trying to load images to my android app from my server using HttpURLConnection(). but i am getting the above error. The code in which the error occurs is below. The downloadBitmap function is called from doInBackground() function. Thanks in advance.

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;
     }

And some times i get another error with the following stack trace

 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
vishnu ns
  • 31
  • 8
  • Please post your full stack trace – Thanh Nguyen Van Jul 25 '16 at 09:09
  • Actually i got this one line error. my url is 192.168.10.178:8084/testrun/DownloadImage?image=lal.jpg . The connection is not happening with my server program. – vishnu ns Jul 25 '16 at 09:38
  • I think exception come from another part of your program. You already `try/catch` almost all line of this method. Try chane `loglevel` of Android Studio to `verbose` or `debug` to find something helpful. – Thanh Nguyen Van Jul 25 '16 at 11:09
  • Your can try implement `UncaughtExceptionHandler ` like this http://stackoverflow.com/questions/19897628/need-to-handle-uncaught-exception-and-send-log-file to print out the stack trace. – Thanh Nguyen Van Jul 25 '16 at 11:11
  • Remove `urlConnection.disconnect();` from your `catch` block. It may be null and you already have similar code in `finally` block – Thanh Nguyen Van Jul 25 '16 at 11:19
  • Finally, got the answer... The issue was really silly one.. I didn't add "http://" before my url. – vishnu ns Jul 26 '16 at 08:49

0 Answers0