【发布时间】:2023-03-17 05:35:02
【问题描述】:
我是 Android 数据绑定库的新手。
我有一堆警告,例如:
warning: viewModel.someBoolean.getValue() is a boxed field but needs to be un-boxed to execute android:checked. This may cause NPE so Data Binding will safely unbox it. You can change the expression and explicitly wrap viewModel.someBoolean.getValue() with safeUnbox() to prevent the warning
定义如下:
在视图模型中
val someBoolean: MutableLiveData<Boolean> = MutableLiveData()
在布局中
<RadioButton
android:id="@+id/someBooleanRadioButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="@={viewModel.someBoolean}"
android:text="@string/boolean_description" />
我尝试通过添加 safeUnbox() 来修复它:
<RadioButton
android:id="@+id/someBooleanRadioButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:checked="@={safeUnbox(viewModel.someBoolean)}"
android:text="@string/boolean_description" />
但我收到编译错误:
msg:cannot find method safeUnbox(java.lang.Boolean) in class android.databinding.ViewDataBinding
在gradle中已经定义了
dataBinding {
enabled = true
}
和kapt 'com.android.databinding:compiler:3.1.4'
任何想法如何解决它? 安卓工作室 3.1.4 梯度 4.4 Kotlin 1.2.61
附:刚刚在问题上重复了。所有问题都是关于如何修复警告,但我的问题是添加safeUnbox()时如何修复编译错误
【问题讨论】:
-
@nilesh-rathod 我不认为它是重复的
-
@NileshRathod 这个问题是关于如何修复“无法反转表达式 android.databinding.DynamicUtil.safeUnbox(viewModelValue)”,但我的问题是关于如何修复“msg:cannot find method safeUnbox (java.lang.Boolean) 在类 android.databinding.ViewDataBinding"。我认为这有点不同,不是吗?
-
我也认为这是一个不重复
标签: android android-databinding