问题拍照“onActivityResult”

问题描述:

我有一个相机的问题,并在很多情况下拍摄照片,并把它带到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")); 
      } 
     } 
    } 
} 

而不是调用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

调用startActivityForResult(intent, TAKE_PICTURE);您的活动后的被切换到后台。当您的设备需要更多CameraActivity资源时,您的不活动Activity可能会被终止。因此,如果您的活动在进入后台之前有一些已初始化的变量,那么您应该准备好在活动回到前台后它们不会被初始化。

+0

我会把我的方法,因为我打电话的活动拍照 审查的回应 – JulioStyle88 2012-04-27 20:39:16

+0

我的问题是没有关系的使用相机,但这个答案帮助我解决它。 – Dave 2013-01-28 13:35:33