ТОЛЬКО ДОБАВИТЬ

аюсь написать простое приложение, используя Kotlin иБиблиотека комнат, Я последовал заучебник в коде Android Persistance.

Вот мойAppDatabase класс в Котлине:

@Database(entities = arrayOf(User::class), version = 1)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userModel(): UserDao

    companion object {
        private var INSTANCE: AppDatabase? = null
        @JvmStatic fun getInMemoryDatabase(context: Context): AppDatabase {
            if (INSTANCE == null) {
                INSTANCE = Room.inMemoryDatabaseBuilder(context.applicationContext, AppDatabase::class.java).allowMainThreadQueries().build()
            }
            return INSTANCE!!
        }

        @JvmStatic fun destroyInstance() {
            INSTANCE = null
        }
    }
}

Но когда я попытался запустить приложение, оно сразу вылетает. Вот журнал сбоев:

Caused by: java.lang.RuntimeException: cannot find implementation for com.ttp.kotlin.kotlinsample.room.AppDatabase. AppDatabase_Impl does not exist
    at android.arch.persistence.room.Room.getGeneratedImplementation(Room.java:90)
    at android.arch.persistence.room.RoomDatabase$Builder.build(RoomDatabase.java:340)
    at com.ttp.kotlin.kotlinsample.room.AppDatabase$Companion.getInMemoryDatabase(AppDatabase.kt:19)
    at com.ttp.kotlin.kotlinsample.MainKotlinActivity.onCreate(MainKotlinActivity.kt:28)
    at android.app.Activity.performCreate(Activity.java:6272)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494) 
    at android.app.ActivityThread.access$900(ActivityThread.java:157) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)

Похоже, класс AppDatabase_Impl не был создан автоматически. Я проверил оригинальное приложение Java, загруженное из codelab, и обнаружил, что AppDatabase_Impl был создан автоматически.

Версия Kotlin: 1.1.2-3 Версия комнаты: 1.0.0-alpha1

Есть ли кто-нибудь опыт с этим?

Редактировать: Использование Kapt решает мою проблему. В моем случае я должен заменить annotationProcessor на kapt.

Ответы на вопрос(6)

Ваш ответ на вопрос