领域混乱 Android 数据绑定

Realm messes with Android data binding

我有一个构建正常的应用程序,但是一旦我通过@RealmClass/RealmModel 或 RealmObject 使我的 classes Realm 感知之一,我就会收到大量错误,如下所示。

这是一个错误还是我做错了什么?

e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AccountsmoduleBinding.java:49: 错误:找不到符号 受保护的 AccountsmoduleBinding(DataBindingComponent _bindingComponent,查看 _root, ^ 符号:class DataBindingComponent 位置:class AccountsmoduleBinding w: C:\Dane.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jre7.1.4-22a21c30432c943d618008fbbd34762eb0d6c8a\kotlin-stdlib-jre7-1.1.4-2.jar: kotlin-stdlib-jre7 已弃用.请改用 kotlin-stdlib-jdk7 e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AccountsmoduleBinding.java:79: 错误:找不到符号 @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent 组件) { ^ 符号:class DataBindingComponent 位置:class AccountsmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AccountsmoduleBinding.java:90: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AccountsmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AccountsmoduleBinding.java:101: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AccountsmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AllaccountsmoduleBinding.java:18: 错误:找不到符号 受保护的 AllaccountsmoduleBinding(DataBindingComponent _bindingComponent,查看 _root, ^ 符号:class DataBindingComponent 位置:class AllaccountsmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AllaccountsmoduleBinding.java:38: 错误:找不到符号 @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent 组件) { ^ 符号:class DataBindingComponent 位置:class AllaccountsmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AllaccountsmoduleBinding.java:49: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AllaccountsmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AllaccountsmoduleBinding.java:60: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AllaccountsmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AnotherfragmentLayoutBinding.java:22: 错误:找不到符号 受保护的 AnotherfragmentLayoutBinding(DataBindingComponent _bindingComponent,查看 _root, ^ 符号:class DataBindingComponent 位置:class AnotherfragmentLayoutBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AnotherfragmentLayoutBinding.java:43: 错误:找不到符号 @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent 组件) { ^ 符号:class DataBindingComponent 位置:class AnotherfragmentLayoutBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AnotherfragmentLayoutBinding.java:54: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AnotherfragmentLayoutBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AnotherfragmentLayoutBinding.java:65: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AnotherfragmentLayoutBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AppactivationmoduleBinding.java:82: 错误:找不到符号 受保护的 AppactivationmoduleBinding(DataBindingComponent _bindingComponent,查看 _root, ^ 符号:class DataBindingComponent 位置:class AppactivationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AppactivationmoduleBinding.java:126: 错误:找不到符号 @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent 组件) { ^ 符号:class DataBindingComponent 位置:class AppactivationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AppactivationmoduleBinding.java:137: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AppactivationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AppactivationmoduleBinding.java:148: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class AppactivationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\BiometryloginmoduleBinding.java:62: 错误:找不到符号 protected BiometryloginmoduleBinding(DataBindingComponent _bindingComponent, View _root, ^ 符号:class DataBindingComponent 位置:class BiometryloginmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\BiometryloginmoduleBinding.java:97: 错误:找不到符号 @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent 组件) { ^ 符号:class DataBindingComponent 位置:class BiometryloginmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\BiometryloginmoduleBinding.java:108: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class BiometryloginmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\BiometryloginmoduleBinding.java:119: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class BiometryloginmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\ConfirmationmoduleBinding.java:41: 错误:找不到符号 受保护的 ConfirmationmoduleBinding(DataBindingComponent _bindingComponent,查看 _root, ^ 符号:class DataBindingComponent 位置:class 确认模块绑定 e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\ConfirmationmoduleBinding.java:68: 错误:找不到符号 @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent 组件) { ^ 符号:class DataBindingComponent 位置:class 确认模块绑定 e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\ConfirmationmoduleBinding.java:79: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class 确认模块绑定 e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\ConfirmationmoduleBinding.java:90: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class 确认模块绑定 e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\DashboardmoduleaccountsfragmentBinding.java:30: 错误:找不到符号 受保护的 DashboardmoduleaccountsfragmentBinding(DataBindingComponent _bindingComponent, ^ 符号:class DataBindingComponent 位置:class DashboardmoduleaccountsfragmentBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\DashboardmoduleaccountsfragmentBinding.java:54: 错误:找不到符号 @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent 组件) { ^ 符号:class DataBindingComponent 位置:class DashboardmoduleaccountsfragmentBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\DashboardmoduleaccountsfragmentBinding.java:65: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class DashboardmoduleaccountsfragmentBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\DashboardmoduleaccountsfragmentBinding.java:76: 错误:找不到符号 @Nullable DataBindingComponent 组件){ ^ 符号:class DataBindingComponent 位置:class DashboardmoduleaccountsfragmentBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\DashboardmoduleBinding.java:30: 错误:找不到符号 protected DashboardmoduleBinding(DataBindingComponent _bindingComponent, View _root,</p> <p>切

Gradle 插件:

apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: "kotlin-kapt" apply plugin: 'realm-android' apply plugin: 'org.jetbrains.dokka-android'

数据class:

@RealmClass 打开 class 帐户数据 ( @PrimaryKey @SerializedName("id") var _id : 字符串 = "", 变种账户号码:字符串=“”, @SerializedName("type") var _type : String = "", 变种名称:字符串=“”, var availableFunds: Float = 0f, 变种平衡:浮动= 0f, @SerializedName("currency") var _currency: String = "", var ownerName : 字符串 = "", 变种利率:浮动= 0f, 变种排序代码:字符串=“”, var iban : 字符串 = "", 变种开放日期:字符串=“”, var透支:浮动= 0f, var lockedFunds : 浮动 = 0f, var creditLimit : 浮动 = 0f, 变种默认名称:字符串=“” ) : 领域模型 { 变量类型:帐户类型 get() = AccountType.valueOf(_type) 设置(值){ _type = value.name }</p> <pre><code>var currency : CurrencyType get() = CurrencyType.valueOf(_currency) set(value) { _currency = value.name }

}

@RealmClass
open class AccountData (
    ...
) : RealmModel {
    var type : AccountType  // <-- this is not a supported field type
        get() = AccountType.valueOf(_type)
        set(value) { _type = value.name }

var currency : CurrencyType // <-- this is not a supported field type
    get() = CurrencyType.valueOf(_currency)
    set(value) { _currency = value.name }
}

您需要使用 @Ignore 注释标记不受支持的 "helper" 字段。

@field:Ignore
var type : AccountType  // <-- this is not a supported field type
    get() = AccountType.valueOf(_type)
    set(value) { _type = value.name }

@field:Ignore
var currency : CurrencyType // <-- this is not a supported field type
    get() = CurrencyType.valueOf(_currency)
    set(value) { _currency = value.name }
}