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

Erro no codigo e não consigo arrumar

021-01-26 16:05:27.105 25286-25394/com.example.projetoroom E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
    Process: com.example.projetoroom, PID: 25286
    java.lang.RuntimeException: An error occurred while executing doInBackground()
        at android.os.AsyncTask$3.done(AsyncTask.java:353)
        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
        at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
        at java.util.concurrent.FutureTask.run(FutureTask.java:271)
        at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: java.lang.IllegalStateException: Migration didn't properly handle Telefone(com.example.projetoroom.model.Telefone).
     Expected:
    TableInfo{name='Telefone', columns={tipo=Column{name='tipo', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}, alunoId=Column{name='alunoId', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0}, id=Column{name='id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1}, numero=Column{name='numero', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}}, foreignKeys=[], indices=[]}
     Found:
    TableInfo{name='Telefone', columns={tipo=Column{name='tipo', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}, numero=Column{name='numero', type='TEXT', affinity='2', notNull=false, primaryKeyPosition=0}, alunoid=Column{name='alunoid', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=0}, id=Column{name='id', type='INTEGER', affinity='3', notNull=true, primaryKeyPosition=1}}, foreignKeys=[], indices=[]}
        at com.example.projetoroom.database.AgendaDatabase_Impl$1.validateMigration(AgendaDatabase_Impl.java:95)
        at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.java:88)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.java:133)
        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:338)
        at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:238)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:96)
        at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:54)
        at androidx.room.RoomDatabase.query(RoomDatabase.java:238)
        at com.example.projetoroom.database.dao.AlunoDAO_Impl.todos(AlunoDAO_Impl.java:141)
        at com.example.projetoroom.asynctask.BuscaAlunosTask.doInBackground(BuscaAlunosTask.java:23)
        at com.example.projetoroom.asynctask.BuscaAlunosTask.doInBackground(BuscaAlunosTask.java:11)
        at android.os.AsyncTask$2.call(AsyncTask.java:333)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
            ... 4 more
6 respostas

Oi, tudo bem ?

Consegue mostrar pra gente suas entidades e também suas migrations ?

Há algo que rolou estranho nelas

Ola, consegui resolver esse problema, era um erro nas Migrations mesmo. Agora estou com outro no Logging Interceptor, que pelo comando:

HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        logging.setLevel(HttpLoggingInterceptor.Level.BASIC);
        OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(logging)
            .build();

ele nao reconhece o comando do "setLevel", no build gradle, coloquei a mesma versao que o instrutor usa no video: 3.13.1 e também a mais recente: 4.9.0 e nenhuma funcionou. Poderia me ajudar nisso?

Cara,

O ideal é a gente fechar essa dúvida, dado que o assunto dela encerrou.

Vou te dar um suporte, mas fica atento para as próximas :D

O importante é usar a versão que o instrutor comentou, inclusive fui ver se na versão mais recente tinha algum problema, mas o método continua lá.

Minha sugestão nesse caso é você garantir que executou o gradle, para que ele traga as novas dependências, além disso, dá uma olhada no import, vê se você fez o correto, algo que as vezes faço é deletar tudo e ir corrigindo no alt + enter

Opa, vou cuidar essa questao do tópico

Em relação a minha duvida, eu ja fiz a sync do projeto varias vezes após atualizar o gradle e também ja deletei todos os imports e fui atualizando no Alt+Enter. Ele busca todos os imports mas o setLevel (fica todo em vermelho) (HttpLoggingInterceptor.Level.BASIC) -> e esse comando aqui sublinhado em vermelho

solução!

Olá, consegui resolver. Eu estava chamando o comando dentro do método errado, agora esta tudo certo, obrigado :D

show de bola!!!