Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro no aplicativo apos tirar a foto!

Quando tiro a foto, e clico no botão V para concluir ele me da o seguinte erro:

Process: com.example.leandro.agenda, PID: 4710 java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=567, result=-1, data=null} to activity {com.example.leandro.agenda/com.example.leandro.agenda.FormularioActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference.

Segue código abaixo!


        //instancia botão de foto
        Button botaoFoto = (Button) findViewById(R.id.formulario_botao_foto);
        //Instancia função que escuta click no botão
        botaoFoto.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Define caminho da imagem
                caminhoFoto = getExternalFilesDir(null) + "/"+ System.currentTimeMillis() +".jpg";
                //Cria arquivo
                File arquivoDaFoto = new File(caminhoFoto);
                //Instancia intent da camera
                Intent intentCamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                //Coloca parametro extra que sera passado para proxima activity
                intentCamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoDaFoto));
                //Starta activity com retorno
                startActivityForResult(intentCamera, CODIGO_CAMERA);
            }
        });



    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        //abrir foto que nos tiramos
        if( resultCode == Activity.RESULT_OK) {
            switch (requestCode) {
                case CODIGO_CAMERA:
                    Toast.makeText(FormularioActivity.this, "Foto "+ caminhoFoto +" deletado" , Toast.LENGTH_LONG).show();
                    helper.carregaImagem(caminhoFoto);
                    break;
            }
        }
    }

Função da class FormularioHelper

    public void carregaImagem(String caminhoFoto) {
        if( caminhoFoto != null ) {
            Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
            Bitmap bitmapCroop = Bitmap.createScaledBitmap(bitmap, 300, 300, true);
            campoFoto.setImageBitmap(bitmapCroop);
            campoFoto.setScaleType(ImageView.ScaleType.FIT_XY);
            campoFoto.setTag(caminhoFoto);
        }
    }
1 resposta
solução!

Leandro,

Na definição do seu atributo caminhoFoto atribua uma valor para ele :

private String caminhoFoto = "";

Provalvemente você está salvando a foto e como inicialmente a referência era nula, está dando conflito e ele não consegue encontrar o arquivo. Então quando ele vai manipular o Bitmap, quebra pois não foi criado.

Faz o teste e fala ai para gente o que rolou !

Espero ter ajudado :D

Abraços !

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software