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

Recebi esse erro no momento de receber os dados do servidor, não consigo entender qual o erro, pois fiz tudo como nas aulas.

E/SQLiteLog: (20) statement aborts at 5: [INSERT INTO Alunos(caminhoFoto,nome,nota,id,endereco,site,telefone) VALUES (?,?,?,?,?,?,?)] datatype mismatch
E/SQLiteDatabase: Error inserting caminhoFoto=null nome=Yuri nota=8.0 id=178a18a5-d6d1-46c4-ae8a-a28971605239 endereco=rua do yuri site=www.sitedoyuri.com telefone=66666666
    android.database.sqlite.SQLiteDatatypeMismatchException: datatype mismatch (code 20)
        at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
        at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:782)
        at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
        at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
        at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1474)
        at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1343)
        at br.com.alura.agenda.dao.AlunoDAO.insere(AlunoDAO.java:96)
        at br.com.alura.agenda.dao.AlunoDAO.sincroniza(AlunoDAO.java:177)
        at br.com.alura.agenda.ListaAlunosActivity$3.onResponse(ListaAlunosActivity.java:89)
        at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:71)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
3 respostas

Oi Clecio, tudo bem? Pelo o que o erro indica teve uma divergência no tipo de dado em alguma coluna.

Muito provalvemente o problema aconteceu devido a migração entre o tipo INTEGER para CHAR(36). Talvez a migration não aconteceu como esperado, ou você apagou os dados do celular e no onCreate() não tinha a tabela atualizada.

Dê uma olhada nesses pontos. Se preferir, pode mandar o código para eu dar uma olhada.

[]s

Encontrei o erro! era apenas mudar o tipo no onCreate(). Obrigado Alex Felipe!!

solução!

Que bom que conseguiu! Pode apenas marcar como solucionado para fecharmos o tópico?

Claro se tiver mais dúvidas sobre o tema pode continuar com o tópico, se for fora do tema, aí só marca como solucionado e abre um novo tópico no fórum.

[]s

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