blitz-time アプリ開発ブログ

Androidアプリ開発などのTips集

【Kotlin入門】Realmを使用するとエラーがでるが文字化けでわからない!「Task :app:kaptDebugKotlin FAILED」と出ている。

Realmを使ったデータベース管理の勉強を始めました。
教科書に載っているとおりにコーディングし、実行したところ、見たこともないエラーに遭遇しました。

C:\User\Projects\KotlinFirstStep\MyScheduler\app\build\generated\source\kapt\debug\io\realm\***_myscheduler_realm_ScheduleRealmProxy.java:37: �G���[: final Schedule����͌p���ł��܂���
public class jp_co_elecom_android_myscheduler_realm_ScheduleRealmProxy extends ***.myscheduler.realm.Schedule
����:Processing class Schedule����:Creating DefaultRealmModule
> Task :app:kaptDebugKotlin FAILED

しかも文字化けしている。。。まったく意味が分からない。。。

f:id:mfblitz:20200711215528p:plain

「Cannot inherit from final '***.myscheduler.realm.Schedule'」

と出てますね。あ~、そういう事か。Scheduleクラスから派生できないという説明が出ていますね。
Scheduleクラスを確認してみると。。。

class Schedule: RealmObject() {
    @PrimaryKey
    var id: Long = 0
    var date: Date = Date()
    var title: String = ""
    var detail: String = ""

}

教科書に「Realmのモデルクラスは継承できるようにopen修飾子つけておく必要があります。」と書いてあったのに忘れていた。

open class Schedule: RealmObject() {
    @PrimaryKey
    var id: Long = 0
    var date: Date = Date()
    var title: String = ""
    var detail: String = ""

}

無事エラー解消しました!