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

Problema ao inserir Database

package br.com.alura.agenda.database;

import android.arch.persistence.room.Database;

@Database(entities = {}, version = 1)
public class AgendaDatabase {
}

Fiz exatamente como ele fez, porém o import não é válido aparentemente por algum problema em "arch", e o @Database consequentemente não funciona. Como posso corrigir isso?

6 respostas

Oi Lucas, tudo bem ?

Cara imagino que esteja tudo vermelho ao colocar essas anotações, certo ?

Vamos lá, queria checar contigo como está seu arquivo build.gradle, talvez haja alguma irregularidade nele que precise ser corrigida.

Além disso, queria ver contigo se tem como você tentar dar um alt+enter no que está em vermelho e ver se aparece para importar o restante.

Opa, tudo joia Matheus! Segue meu gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 30
    defaultConfig {
        applicationId "br.com.alura.agenda"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    def room_version = "1.1.1"

    implementation "androidx.room:room-runtime:$room_version"
    annotationProcessor "androidx.room:room-compiler:$room_version"
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.13.1'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
    implementation 'com.google.android.material:material:1.2.1'
}

A opção do import com alt+enter não aparece, acredito que o erro esteja no gradle mesmo.

Obrigado!

Tava dando uma olhada e como tu tá usando a versão com androidx o recomendado é usar outra versão:

  def room_version = "2.3.0"

  implementation "androidx.room:room-runtime:$room_version"
  annotationProcessor "androidx.room:room-compiler:$room_version"

https://developer.android.com/jetpack/androidx/releases/room#java

Mudei a versão e alguns dos problemas foram resolvidos! Porém o problema continua em algumas outras coisas, como o próprio @Database. No output do build, aparece a seguinte mensagem: error: package android.arch.persistence.room does not exist import android.arch.persistence.room.Database;

E nos imports, o arch segue escrito em vermelho

solução!

Resolvi o problema alterando a escrita de import android.arch.persistence.room.Database; para import androidx.room.Database;

Consegui inserir uma outra chamada e utilizei ela de base.

Agradeço de todo jeito pela disponibilidade e ajuda, Matheus! Bom resto de semana pra você

Boa!!