Android 无法生成视图绑定器java.lang.StackOverflower错误

Android 无法生成视图绑定器java.lang.StackOverflower错误,android,android-studio,androidx,Android,Android Studio,Androidx,正在尝试将应用程序从支持迁移到android 29的androidx。在android studio中获取错误无法生成视图绑定java.lang.StackOverflowerError。不显示任何文件名或行号时出错 在探索可能的解决方案之后,我发现这个问题与绑定适配器有关 迁移应用程序时,android studio会自动转换一段代码 旧代码 android:visibility="@{rating.isExtended.get()?View.VISIBLE:View.GONE}" andr

正在尝试将应用程序从支持迁移到android 29的androidx。在android studio中获取错误无法生成视图绑定java.lang.StackOverflowerError。不显示任何文件名或行号时出错

在探索可能的解决方案之后,我发现这个问题与绑定适配器有关

迁移应用程序时,android studio会自动转换一段代码

旧代码

android:visibility="@{rating.isExtended.get()?View.VISIBLE:View.GONE}"
android:visibility="@{safeUnbox(rating.isExtended.get())?View.VISIBLE:View.GONE}"
新代码

android:visibility="@{rating.isExtended.get()?View.VISIBLE:View.GONE}"
android:visibility="@{safeUnbox(rating.isExtended.get())?View.VISIBLE:View.GONE}"
我遵循链接并使用以下代码段

@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
    view.visibility = visible ? View.VISIBLE : View.GONE;
}

现在问题已解决。

错误是因为
布局xml文件中存在
getValue()
get()

在我的一个layout.xml文件中,我编写了
mutableLiveDataVariable.getValue()
,这是一种错误的做法。当我的studio版本是3.5.1时,它工作正常,没有出现任何错误

只要我更新到3.5.3。我开始得到
无法生成视图绑定java.lang.StackOverflowerError
。因此,我删除了
getValue()
,并将代码更改为
android:text=“@={viewModel.firstName}”

它成功了

请检查下面的链接,在那里报告