1
resposta

Erro invocar Bitmap.createScaleBitmap

O App invoca a câmera normal, o problema é depois que tiro a foto, e vou invocar o Bitmap.createScaleBitmap, trava o App e fecha.

Abaixo apresenta está normal, pois não apresenta erro na execução.

Intent intencamera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            caminhofoto = getExternalFilesDir(null) + "/"+System.currentTimeMillis()+".jpg";
            File arquivoFoto = new File(caminhofoto);
            intencamera.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
           startActivityForResult(intencamera, CODIGO_CAMERA);

Agora no trecho abaixo ele indica o erro justamente na linha que invoca o metoro Bitmap.createScaleBitmap.

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == CODIGO_CAMERA){
            //recupera a foto e coloca na logo
            ImageView img_usuario = (ImageView) findViewById(R.id.iv_usuario);
            Bitmap bitmap = BitmapFactory.decodeFile(caminhofoto);
            Bitmap bitmapreduzido = Bitmap.createScaledBitmap(bitmap, 300, 300, true);
            img_usuario.setImageBitmap(bitmapreduzido);

        }

    }

e a mensagem de erro no logcat é esse.

java.lang.RuntimeException: Unable to resume activity {com.dionisiofilho.guiafinanceiro/com.dionisiofilho.guiaMainActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=123, result=-1, data=null} to activity
1 resposta

Oi Dionisio, tudo bem ?

Cara você está esquecendo de fazer uma validação, verificar se o resultado deu certo :

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == Result_OK){
             if(requestCode == CODIGO_CAMERA){
                       ImageView img_usuario = (ImageView) findViewById(R.id.iv_usuario);
                        Bitmap bitmap = BitmapFactory.decodeFile(caminhofoto);
                        Bitmap bitmapreduzido = Bitmap.createScaledBitmap(bitmap, 300, 300, true);
            img_usuario.setImageBitmap(bitmapreduzido);
            }
        }

    }

Outra coisa que pode estar ocorrendo é o seguinte, você pode ter se esquecido de adicionar a permissão de poder gravar arquivos, o que faz com que suas fotos não sejam armazenadas.

E ainda tem esse mesmo problema no android 6 em diante que você precisa solicitar para o usuário, da mesma forma que fizemos com a ligação.

Espero ter ajudado.

Abraços