カメラに問題があり、多くの場合、写真を撮って ImageView に渡すと、エラーが発生します。
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 などが欠けている場合ではありませんが、エラーが頻繁に発生します。
何か案は?
エラーは引き続き表示されますが、表示されない場合とそうでない場合があります。
置いてみてください。
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"));
}
}
}
}