В чём ошибка и как можно исправить?
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.root.pets/com.example.root.pets.MainActivity}: java.lang.RuntimeException: cannot find implementation for com.example.root.pets.AppDatabase. AppDatabase_Impl does not exist
@Entity
class Person {
@PrimaryKey
internal var name: String? = null
internal var age: Int = 0
internal var favoriteColor: String? = null
}
@Dao
interface PersonDao {
// Получение всех Person из бд
@get:Query("SELECT * FROM person")
val allPeople: List<Person>
// Добавление Person в бд
@Insert
fun insertAll(vararg people: Person)
// Удаление Person из бд
@Delete
fun delete(person: Person)
// Получение всех Person из бд с условием
@Query("SELECT * FROM person WHERE favoriteColor LIKE :color")
fun getAllPeopleWithFavoriteColor(color: String): List<Person>
}
@Database(entities = arrayOf(Person::class /*, AnotherEntityType.class, AThirdEntityType.class */), version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract val personDao: PersonDao
}
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val myThread = Thread(object : Runnable {
override fun run() {
var db = Room.databaseBuilder(getApplicationContext(),
AppDatabase::class.java, "populus-database4").build()
val everyone = db.personDao
val person = Person()
person.name = "John Smith"
person.age = 10000
person.favoriteColor = "black"
everyone.insertAll(person)
val persons = everyone.allPeople
Log.d("111", "${everyone.allPeople[0].name}")
}
})
myThread.start()
}
}
Зайдите в gradle файл и добавьте строчку, найдите annotationProcessor строчку и добавьте такую же только со словом kapt. Вот пример
annotationProcessor "android.arch.persistence.room:compiler:$room_version"
kapt "android.arch.persistence.room:compiler:$room_version"
Разобрался.
@PrimaryKey
- не может быть null
, поэтому:
@Entity
class Person {
@PrimaryKey
var name: String = ""
var age: Int = 0
var favoriteColor: String? = null
}
Добавить в Gradle app:
apply plugin: 'kotlin-kapt'
...
implementation "android.arch.persistence.room:runtime:1.1.1"
kapt "android.arch.persistence.room:compiler:1.1.1"
Поправил сам вопрос. Сделал добавление записи и вывода в лог name
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Пишу не большого бота с базой sqliteВ базе две таблицы: products и categories_to_subcategories
Можно ли как-то запустить Java проект с использованием GUI на мобильном устройстве?
Начинаю разбираться со спрингомНе работает самый банальный пример, со статьи на хабре
Хочу попробовать разрабатывать под андроид на Java, работал в intelliJ idea до этого, привык к ней, установил андроид студио и вопрос вот в чем: будет...