2012-11-08 66 views
0

我有應用程序拍攝照片並將其發送到服務器。拍照和服務器(接受圖像)完全分開運行。當我嘗試使用下面的代碼拍攝照片後發送服務器時,導致強制關閉應用程序。下面是代碼:作爲Sending images using Http Post使用NameValuePair傳遞參數

登錄貓說

protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    if (resultCode == RESULT_OK){ 
     Uri imageUri=data.getData(); 
     List<NameValuePair> params = new ArrayList<NameValuePair>(1); 
     params.add(new BasicNameValuePair("image", imageUri.getPath())); 
     post("http://myserver-address",params); 
    } 
} 

後的方法是一樣的:

java.lang.RuntimeException: Unable to resume activity 
{com.john.smith/com.john.smith.Activity}: java.lang.RuntimeException: 
Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} 
to activity {com.john.smith/com.john.smith.Activity}: 
    java.lang.NullPointerException 

我認爲,也有一些是錯誤的參數傳遞給發送功能。因爲,我嘗試禁用我的發送功能中的所有行,仍然面臨錯誤。而這個錯誤會導致應用程序關閉。

我該如何解決這個問題?如何將照片傳到send以外的其他功能?

更新:

我的相機捕捉代碼是一樣的 http://code.google.com/p/crw-cmu/source/browse/luis/PhotoIntentActivity/src/com/example/android/photobyintent/PhotoIntentActivity.java?r=734

我這樣稱呼它是

 protected void onActivityResult(int requestCode, int resultCode, Intent data){ 

     switch (requestCode) { 
     case ACTION_TAKE_PHOTO_B: { 
      if (resultCode == RESULT_OK) { 
      handleBigCameraPhoto(); 
      Uri imageUri=data.getData(); 
      List<NameValuePair> params = new ArrayList<NameValuePair>(1); 
      params.add(new BasicNameValuePair("image", imageUri.getPath())); 
      post("http://myserver-address",params); 
     } 
      } 
      break; 
     } // ACTION_TAKE_PHOTO_B 

    } // switch 
} 
+0

檢查'imageUri'是該行後空'Uri imageUri = data.getData();'。另外,'handleBigCameraPhoto'中有什麼? – climbage

+0

我查過Uri imageUri = data.getData();它確實返回null,如何獲取從相機捕獲的圖像? –

回答

0

日誌顯示data=null所以Uri imageUri=data.getData();事業NPE。

我建議添加一些if(requestCode == ...) {switch(requestCode),因爲數據沒有在所有情況下設置。

爲避免崩潰,您應該在取消引用前檢查爲空dataimageUri。在else子句中添加一些日誌。

互聯網搜索提供的結果:

+0

是的,你是對的,當我嘗試使用imageUri時,它返回null。那麼,我怎樣才能獲得從相機捕獲的圖像並將其發送到發送功能。 –

+0

請激活此代碼的代碼 – Aubin

+0

我更新了,請檢查更新的版本... –