android - Realm 与 Android 数据绑定(bind)混淆

标签 android kotlin realm android-databinding

我有一个构建好的应用程序,但是一旦我通过@RealmClass/RealmModel 或 RealmObject 使我的一个类能够感知 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: error: cannot find symbol protected AccountsmoduleBinding(DataBindingComponent _bindingComponent, View _root, ^ symbol: class DataBindingComponent location: class AccountsmoduleBinding w: C:\Dane.gradle\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-stdlib-jre7\1.1.4-2\272a21c30432c943d618008fbbd34762eb0d6c8a\kotlin-stdlib-jre7-1.1.4-2.jar: kotlin-stdlib-jre7 is deprecated. Please use kotlin-stdlib-jdk7 instead e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\AccountsmoduleBinding.java:79: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol protected AllaccountsmoduleBinding(DataBindingComponent _bindingComponent, View _root, ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol protected AnotherfragmentLayoutBinding(DataBindingComponent _bindingComponent, View _root, ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol protected AppactivationmoduleBinding(DataBindingComponent _bindingComponent, View _root, ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol protected BiometryloginmoduleBinding(DataBindingComponent _bindingComponent, View _root, ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol protected ConfirmationmoduleBinding(DataBindingComponent _bindingComponent, View _root, ^ symbol: class DataBindingComponent location: class ConfirmationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\ConfirmationmoduleBinding.java:68: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: class ConfirmationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\ConfirmationmoduleBinding.java:79: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: class ConfirmationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\ConfirmationmoduleBinding.java:90: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: class ConfirmationmoduleBinding e: C:\Dane\Projekty\Livecycle\app\build\generated\data_binding_base_class_source_out\debug\dataBindingGenBaseClassesDebug\out\pl\qus\livecycle\databinding\DashboardmoduleaccountsfragmentBinding.java:30: error: cannot find symbol protected DashboardmoduleaccountsfragmentBinding(DataBindingComponent _bindingComponent, ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable ViewGroup root, boolean attachToRoot, @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol @Nullable DataBindingComponent component) { ^ symbol: class DataBindingComponent location: 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: error: cannot find symbol protected DashboardmoduleBinding(DataBindingComponent _bindingComponent, View _root, CUT
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'
数据类:
@RealmClass open class AccountData ( @PrimaryKey @SerializedName("id") var _id : String = "", var accountNumber: String = "", @SerializedName("type") var _type : String = "", var name : String = "", var availableFunds: Float = 0f, var balance: Float = 0f, @SerializedName("currency") var _currency: String = "", var ownerName : String = "", var interestRate : Float = 0f, var sortCode : String = "", var iban : String = "", var openingDate : String = "", var overdraft : Float = 0f, var lockedFunds : Float = 0f, var creditLimit : Float = 0f, var defaultName: String = "" ) : RealmModel { var type : AccountType get() = AccountType.valueOf(_type) set(value) { _type = value.name }

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 标记不受支持的“帮助”字段。注解。
@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 }
}

关于android - Realm 与 Android 数据绑定(bind)混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50348469/

相关文章:

java - 在匿名类的接口(interface)中只实现一种方法

android - 实时数据。无法分配给 ‘value’ : the setter is protected/*protected and package*/for synthetic extension

java - 意外的记录类型(org.apache.poi.hssf.record.HyperlinkRecord)

swift - 按另一个表中的属性总和排序的 Realm

android - 以 UTC 时区保存日期

android - 在 Android 5.0 上的 Activity 之间转换时如何排除 ActionBar

android - NoSuchMethodError : No virtual method removeOnPageChangeListener 错误

android - 如何在 Android 中使用 webservice 将图像上传到服务器?

ios - Realm 是否具有相当于 fetchResultsController 的 .NSFetchedResultsChangeMove :

java - Android getfilesdir() 中的空指针