Quando acabo de tirar a foto e retorna para a FormularioActivity está me dando esse erro, como se o objeto estivesse nulo, já tentei de todas as formas citadas aqui no fórum. Estou rodando a aplicação direto em um celular. Se alguém puder me ajudar, muito obrigado desde já!
ERRO: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:591)
MEU CÓDIGO:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_formulario);
helper = new FormularioHelper(this);
//Devolve a Intent usada para abrir o formulário na listagem, quando selecionado um aluno da lista.
final Intent intent = getIntent();
Aluno aluno = (Aluno) intent.getSerializableExtra("aluno");
if(aluno != null) {
helper.preencheFormulario(aluno);
}
Button botaoFoto = (Button) findViewById(R.id.formulario_botao_foto);
botaoFoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
caminhoFoto = getExternalFilesDir(null) + "/" + System.currentTimeMillis() + ".jpg";
File arquivoFoto = new File(caminhoFoto);
intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
startActivityForResult(intentCamera, CODIGO_CAMERA);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//Verifica se está realmente vindo um resultCode no caso se não for tirada a foto ele não vai executar o restante
if(resultCode == Activity.RESULT_OK){
//Abre a foto que tiramos
if(requestCode == CODIGO_CAMERA){
ImageView foto = (ImageView) findViewById(R.id.formulario_foto);
Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
Bitmap bitmapReduzido = bitmap.createScaledBitmap(bitmap, 300, 300, true);
foto.setImageBitmap(bitmapReduzido);
foto.setScaleType(ImageView.ScaleType.FIT_XY);
}
}
}