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

Esta dando erro quando chamo o dao através da minha classe database

Estou implementando o SqLite em um projeto do curso que não fazia a persistência de dados (Ceep). Estou fazendo as implementações de acordo com o curso Room. Mas não sei o que estou fazendo de errado. Esta dando NullPointerException com a seguinte situação:

   @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_notes);
        setTitle(TITLE_APPBAR);
        ListNotesDatabase db = ListNotesDatabase.getInstance(this);
        dao = db.getNoteDao();

        preferences = new NotesPreferences(this);
        List<Note> list = new ArrayList();
        configRecyclerView(list);
        configButtonInsertNote();
    }

/AndroidRuntime: FATAL EXCEPTION: main Process: com.renanparis.ceed, PID: 3890 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.renanparis.ceed/com.renanparis.ceed.ui.activity.ListNotesActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.renanparis.ceed.database.dao.NoteDao com.renanparis.ceed.database.ListNotesDatabase.getNoteDao()' on a null object reference

https://github.com/renanparis/Lista_Notas_Alura.git

3 respostas
solução!

Oi Renan, tudo bem?

Eu vi o seu código e o problema está no getInstance() do ListNoteDatabase, perceba que na lógica implementada a instância só é feita quando a referência é diferente de nula:

    public static ListNotesDatabase getInstance(Context context){
        if (instance != null){
            instance = Room.databaseBuilder(context, ListNotesDatabase.class, NAME_DB).build();
        }
        return instance;
    }

Sendo que precisa ser o contrário:

if (instance == null){
    instance = Room.databaseBuilder(context, ListNotesDatabase.class, NAME_DB).build();
}

Faça o ajuste e teste o App.

[]s

Oi Alex, tudo certo e você?

Obrigado pela ajuda, funcionou agora!

Você pode dar uma olhada nesse problema aqui: https://cursos.alura.com.br/forum/topico-ao-salvar-um-cliente-nao-esta-gerando-o-id-85836 Eu abri esse tópico há alguns dias e não consegui ainda resolver....é de outro exercício que estou fazendo.

Que bom que deu certo!

Blz, eu acabei de responder, dá uma conferida na minha resposta e vamos continuar com a dúvida por aquele tópico :)