2012-04-25 70 views
3

我有一個相機的問題,並在很多情況下拍攝照片,並把它帶到ImageView,得到錯誤。問題拍照「onActivityResult」

java.lang.RuntimeException: Unable to resume activity {co.com.xxxx.xxxx/xxxx.xxxx.screens.formularioScreen}: 
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent 
{ act=inline-data (has extras) }} to activity {xxxx.xxxx,screens/xxxx.xxxx.screens.formularioScreen}: 
java.lang.NullPointerException 

我的代碼拍照如下:

Button oButton = new Button(this); 
    oButton.setText("take Photo"); 
    oButton.setOnClickListener(new OnClickListener() {    
     public void onClick(View v) { 

      oImageActual = oView; //variable final = ImageView 
      Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      startActivityForResult(intent, TAKE_PICTURE); 
     }      
    }); 

//layout = container 
layout.addView(oButton); 

,我有onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == TAKE_PICTURE) {   
     if (data != null) {    
      if (data.hasExtra("data")) { 
       oImageActual.setImageBitmap((Bitmap) data.getParcelableExtra("data")); 
      }    
     } 
    } 
} 

不,如果我錯過了一些try/catch語句或某事的方法,但錯誤頻繁發生。

任何想法?


錯誤仍然出現,有時它不會,以及其他時間。
試着將它oneilse14說,

oImageActual.setImageBitmap((Bitmap) data.getExtras().get("data")); 

但誤差保持不變。任何人都知道爲什麼會發生這種情況,或者如何預防它?


一個按鈕

oButton.setText("Take photo"); 
oButton.setOnClickListener(new OnClickListener() {    
    public void onClick(View v) {  
     oImageActual = oView; //oImageActual ImageView is a final variable = new ImageVew(this); 
     Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);       
     startActivityForResult(intent, TAKE_PICTURE); 
    }      
}); 
LinAyout.addView(oButton); 

啓動相機而這是onActivityResult。

/** 
* Al terminar la actividad de la camara, se ejecuta este metodo para continuar 
*/ 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data);  
    if (requestCode == TAKE_PICTURE && (resultCode == Activity.RESULT_OK)) {    
     if (data != null) {   
      if (data.hasExtra("data")) {     
       oImageActual.setImageBitmap((Bitmap) data.getParcelableExtra("data")); 
      } 
     } 
    } 
} 

回答

0

而不是調用getParcelableExtra(),請嘗試使用

oImageActual.setImageBitmap((Bitmap) data.getExtras().get("data")); 
+0

我會盡力,謝謝。 – JulioStyle88 2012-04-25 20:21:31

+0

問題依然存在,我無法修復,沒有發生。 我知道的是,我有另一個活動,它有一個相機按鈕和3個單選按鈕,如果它在那裏工作,然後返回到我的應用程序,問題依然存在,並照片沒有問題。 – JulioStyle88 2012-04-26 13:58:09

1

調用startActivityForResult(intent, TAKE_PICTURE);您的活動後的被切換到後臺。當您的設備需要更多CameraActivity資源時,您的不活動Activity可能會被終止。因此,如果您的活動在進入後臺之前有一些已初始化的變量,那麼您應該準備好在活動回到前臺後它們不會被初始化。

+0

我會把我的方法,因爲我打電話的活動拍照 審查的迴應 – JulioStyle88 2012-04-27 20:39:16

+0

我的問題是沒有關係的使用相機,但這個答案幫助我解決它。 – Dave 2013-01-28 13:35:33