Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Erro FATAL EXCEPTION Android AVD

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: br.com.alura.agenda, PID: 2796
                  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:658)
                      at br.com.alura.agenda.adapter.AlunosAdapter.getView(AlunosAdapter.java:77)
5 respostas

Boa noite Pedro.

Tranquilo?

Você poderia postar o código do AlunosAdapter para eu dar uma olhada?

public class AlunosAdapter extends BaseAdapter {
    private final List<Aluno> alunos;
    private final Context context;

    public AlunosAdapter(Context context, List<Aluno> alunos) {
        this.context = context;
        this.alunos = alunos;
    }

    @Override
    public int getCount() {
        return alunos.size();
    }

    @Override
    public Object getItem(int position) {
        return alunos.get(position);
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        Aluno aluno = alunos.get(position);

        LayoutInflater inflater = LayoutInflater.from(context);

        View view = convertView;
        if (view == null) {
            view = inflater.inflate(R.layout.list_item, parent, false);
        }

        TextView campoNome = (TextView) view.findViewById(R.id.item_nome);
        campoNome.setText(aluno.getNome());

        TextView campoTelefone = (TextView) view.findViewById(R.id.item_telefone);
        campoTelefone.setText(aluno.getTelefone());

        TextView campoEndereco = (TextView) view.findViewById(R.id.item_endereco);
        if (campoEndereco != null) {
            campoEndereco.setText(aluno.getEndereco());
        }

        TextView campoSite = (TextView) view.findViewById(R.id.item_site);
        if (campoSite != null) {
            campoSite.setText(aluno.getSite());
        }

        ImageView campoFoto = (ImageView) view.findViewById(R.id.item_foto);
        String caminhoFoto = aluno.getCaminhoFoto();
        if (caminhoFoto != null) {
            Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto);
            Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 100, 100, true);
            campoFoto.setImageBitmap(bitmapReduzido);
            campoFoto.setScaleType(ImageView.ScaleType.FIT_XY);
        }

        return view;
    }
}

Pedro para inserir código utilize o campo inserir código ao postar. Assim fica mais legível para entender. Cole seu código substituindo a frase entre '''.

Vou fazer com o seu código para você ver como fica.

public class AlunosAdapter extends BaseAdapter { 
    private final List alunos; 
    private final Context context;

    public AlunosAdapter(Context context, List alunos) { 
        this.context = context; 
        this.alunos = alunos; 
    }

    @Override 
    public int getCount() { 
        return alunos.size();
     }

    @Override 
    public Object getItem(int position) { 
        return alunos.get(position); 
    }

    @Override 
    public long getItemId(int position) { 
        return 0;
     }

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
        Aluno aluno = alunos.get(position);

        LayoutInflater inflater = LayoutInflater.from(context);

        View view = convertView; 
        if (view == null) { 
            view = inflater.inflate(R.layout.list_item, parent, false); 
        }

        TextView campoNome = (TextView) view.findViewById(R.id.item_nome); 
        campoNome.setText(aluno.getNome());

        TextView campoTelefone = (TextView) view.findViewById(R.id.item_telefone); 
        campoTelefone.setText(aluno.getTelefone());

        TextView campoEndereco = (TextView) view.findViewById(R.id.item_endereco); 
        if (campoEndereco != null) { 
            campoEndereco.setText(aluno.getEndereco()); 
        }

        TextView campoSite = (TextView) view.findViewById(R.id.item_site); 
        if (campoSite != null) { 
            campoSite.setText(aluno.getSite()); 
        }

        ImageView campoFoto = (ImageView) view.findViewById(R.id.item_foto); 
        String caminhoFoto = aluno.getCaminhoFoto(); 
        if (caminhoFoto != null) { 
            Bitmap bitmap = BitmapFactory.decodeFile(caminhoFoto); 
            Bitmap bitmapReduzido = Bitmap.createScaledBitmap(bitmap, 100, 100, true); 
            campoFoto.setImageBitmap(bitmapReduzido); 
            campoFoto.setScaleType(ImageView.ScaleType.FIT_XY); 
        }

        return view; 
    }
 }

Pedro.

Em qual momento ocorre essa exception sabe me dizer?

Poste o código da activity do formulário para poder entender melhor o seu problema.

solução!

Então esse código é o mesmo usado pelo Instrutor, não teve nenhuma modificação ele simplesmente do nada começou a dar essa EXCEPTION.

Eu exclui o AVD e parece que o erro parou. Rodando no device físico o erro não aparece.