2012-04-25 3 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); 

내가

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

내가 어떤 시도/캐치 또는 뭔가를 누락하지 않을 경우 onActivityResult를하는 방법이 있지만 오류는 자주 발생합니다.

아이디어가 있으십니까?


오류가 계속 나타나고 그렇지 않은 경우가 있습니다.
말했다 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를합니다. 대신 getParcelableExtra는(), startActivityForResult(intent, TAKE_PICTURE); 활동을 호출 한 후

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

답변

0

배경에 간다. 귀하의 장치가 CameraActivity에 대한 더 많은 자원을 필요로 할 때 비활성 활동이 종료 될 수 있습니다. 따라서 백그라운드로 이동하기 전에 액티비티 내부에 초기화 된 변수가있는 경우 액티비티가 포 그라운드로 돌아간 후에 초기화되지 않을 준비가되어 있어야합니다.

+0

감사합니다. – JulioStyle88

+0

문제가 지속되면 문제를 해결할 수 없습니다. 내가 알기로는 카메라 버튼과 3 개의 라디오 버튼이있는 또 다른 액티비티가 있으며 거기에서 작동하면 문제가 지속되는 내 애플리케이션으로 돌아가 문제없이 사진을 찍습니다. – JulioStyle88

1

를 사용하려고 호출

/** 
* 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

사진을 찍으려고 활동을 호출 할 때 내 방법을 사용합니다. – JulioStyle88

+0

내 문제는 카메라 사용과 관련이 없지만이 대답으로 해결할 수있었습니다. – Dave