无法使Android Room Entity类具有可分辨性

时间:2017-11-16 03:37:44

标签: android kotlin parcelable android-room

我使用Kotlin,我有Entity类用于Android数据库Room。我想把它Parcelable,但我收到了这个错误:

/Users/rafael/AndroidStudioProjects/Cevsen/app/build/tmp/kapt3/stubs/debug/me/aizon/rafaelekol/cevsen/entities/Bab.java
Error:(6, 1) error: Parceler: No @ParcelConstructor annotated constructor and no default empty bean constructor found.
Warning:warning: Supported source version 'RELEASE_7' from annotation processor 'android.arch.persistence.room.RoomProcessor' less than -source '1.8'
/Users/rafael/AndroidStudioProjects/Cevsen/app/build/tmp/kapt3/stubs/debug/me/aizon/rafaelekol/cevsen/database/MyDatabase.java
Warning:(5, 1) warning: Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either provide `room.schemaLocation` annotation processor argument OR set exportSchema to false.
Error:Execution failed for task ':app:kaptDebugKotlin'.
> Internal compiler error. See log for more details

我的实体类:

@Parcel(Parcel.Serialization.BEAN)
@Entity(tableName = "bab")
data class Bab (
    @PrimaryKey(autoGenerate = true)
    val uid: Long,

    var id: Int = 0,

    var latin:String = "",

    @SerializedName("latin_text")
    @ColumnInfo(name = "latin_text")
    var latinText:String = "",

    var turkish:String = "",
)

我的依赖项:

api 'org.parceler:parceler-api:1.1.9'
kapt 'org.parceler:parceler:1.1.9'

1 个答案:

答案 0 :(得分:0)

下面的代码为我工作,没有错误

class Farm(
@PrimaryKey(autoGenerate = true)
var farmId: Long = 0,
var farmerId: Long = 0,
var farmName: String = AppConstants.EMPTY_STRING,
var address: String = AppConstants.EMPTY_STRING,
var area: Int = 0,
var lat: String = AppConstants.EMPTY_STRING,
var lng: String = AppConstants.EMPTY_STRING,

):可包裹的{

@Ignore
constructor() : this(0) {
}

}