2013-05-10 115 views
1

它從通道讀取圖像並將其寫入卡。卡中的圖像是完全寫入的,很好。唯一的問題是線程被掛起,並且在該循環之後不執行任何行。Android:線程停止工作

protected Bitmap doInBackground(String... arg0) { 
    // TODO Auto-generated method stub' 
     // Runtime.getRuntime().availableProcessors(); 
    System.out.println("Inside doinback"+ RemoteScreen.out.toString()); 
     try { 
      RemoteScreen.out.write(210); 
      //Home.threadloop = false; 
      Bitmap bitmap = null; 
      String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); 
      String fileName = "a.png"; 
      String imageInSD = baseDir + File.separator + fileName; 
       System.out.println(imageInSD); 
      if (is!= null) { 
       FileOutputStream fos = null; 
       BufferedOutputStream bos = null; 
       try { 
        // Log.i("IMSERVICE", "FILERECCC-1"); 
        //ContextWrapper context = null; 
        fos = new FileOutputStream(imageInSD); 
        bos = new BufferedOutputStream(fos); 

        byte[] aByte = new byte[1024]; 
        int bytesRead; 
        //thread stuck in this loop and does not move forward 
        while ((bytesRead = is.read(aByte)) > 0 ) { 
         if (bytesRead == 1) 
          break; 
         bos.write(aByte, 0, bytesRead); 
        System.out.println("Loop"+aByte); 

        } 

        bos.close(); 

       Log.i("IMSERVICE", "out of loop");  
        java.io.FileInputStream in = new FileInputStream(imageInSD); 
       bitmap = BitmapFactory.decodeStream(in); 
        bitmap = BitmapFactory.decodeFile(imageInSD); 

      Log.i("IMSERVICE", "saved"); 
       if (bitmap != null) 
        System.out.println(bitmap.toString()); 

       } catch (IOException ex) {  
        // Do exception handling  
      //  Log.i("IMSERVICE", "exception "); 
       } 
      } 
      publishProgress(b); 
      b = null; 
      ch = 4646; 

     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 



    return null; 
} 

日誌跟蹤顯示以下錯誤。

05-10 20:34:42.715: E/AndroidRuntime(1135): FATAL EXCEPTION: AsyncTask #3 
    05-10 20:34:42.715: E/AndroidRuntime(1135): java.lang.RuntimeException: An error occured while executing doInBackground() 
    05-10 20:34:42.715: E/AndroidRuntime(1135): at android.os.AsyncTask$3.done(AsyncTask.java:299) 
    05-10 20:34:42.715: E/AndroidRuntime(1135):  at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352) 
    05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.FutureTask.setException(FutureTask.java:219) 
    05-10 20:34:42.715: E/AndroidRuntime(1135):  at java.util.concurrent.FutureTask.run(FutureTask.java:239) 
    05-10 20:34:42.715: E/AndroidRuntime(1135):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 
    05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.lang.Thread.run(Thread.java:856) 
05-10 20:34:42.715: E/AndroidRuntime(1135): Caused by: java.lang.NullPointerException 
05-10 20:34:42.715: E/AndroidRuntime(1135): at com.rms.remotedesktop1.screencahnge.doInBackground(screencahnge.java:43) 
05-10 20:34:42.715: E/AndroidRuntime(1135): at com.rms.remotedesktop1.screencahnge.doInBackground(screencahnge.java:1) 
05-10 20:34:42.715: E/AndroidRuntime(1135): at android.os.AsyncTask$2.call(AsyncTask.java:287) 
05-10 20:34:42.715: E/AndroidRuntime(1135): at java.util.concurrent.FutureTask.run(FutureTask.java:234) 
+1

你有寫入權限嗎?發佈整個堆棧跟蹤 – Blackbelt 2013-05-10 20:32:15

+0

檢查此時可能會清除 – user2327907 2013-05-10 20:39:23

+0

您能否說明哪一行是screencahnge的第43行?這是碰撞發生的地方。 – 2013-05-10 20:41:05

回答

5

根據logcat,代碼在第43行崩潰與空指針異常,我不知道哪一行是43。但是:

+0

沒有它在RemoteScreen.out.write(210)有問題,但我已經解決了現在在onPollAlarm錯誤 問題:java.lang.IllegalStateException:問題解析統計信息:java.io.FileNotFoundException:/ proc/net/xt_qtaguid/iface_stat_all:打開失敗:ENOENT(沒有這樣的文件或目錄) – user2327907 2013-05-11 07:44:07

0

我自己解決了這個問題。由於代碼中的邏輯錯誤,正在更改其值的靜態變量出現錯誤。