Android数据绑定生成错误:需要常量表达式

Android数据绑定生成错误:需要常量表达式,android,android-layout,data-binding,Android,Android Layout,Data Binding,我正在使用引用数据绑定来编写Android应用程序 但在构建我的项目时,它在生成的类中显示了一个错误 > '/databinding/DataBinderMapper.java:10: error: constant expression > required.' 此错误发生在生成的类内的switch语句中DataBinderMapper.java(此文件是用于数据绑定的自动生成文件) 有人知道自动生成的buld文件中发生java开关案例错误的原因吗 编辑: 我发现出现这个问题的原

我正在使用引用数据绑定来编写Android应用程序

但在构建我的项目时,它在生成的类中显示了一个错误

> '/databinding/DataBinderMapper.java:10: error: constant expression
> required.'
此错误发生在生成的类内的switch语句中DataBinderMapper.java(此文件是用于数据绑定的自动生成文件)

有人知道自动生成的buld文件中发生java开关案例错误的原因吗

编辑: 我发现出现这个问题的原因是,在R.java文件中创建的布局引用对于这种情况不是最终的。 例如,在我的例子中,R.java中的布局引用是

public static int activity_main=0x7f04001c;
事实上应该是这样的

public static final int activity_main=0x7f04001b


但我不知道发生这种情况的原因以及如何将其更改为final。

可能您绑定的模型的变量中有final修饰符。

当您的项目与库或应用程序之外的外部插件有依赖关系时,会发生此错误。
出现此问题的原因是,当您与多个库/插件存在依赖关系时,生成的ID可能会冲突。

您是否尝试了干净的构建?是的,但相同的错误在我的案例中,有两个插件应用于我的项目。删除此选项可以更正此问题。但是在我的项目中,我必须应用这个插件来处理其他依赖项。你有没有办法在不删除这些插件的情况下解决这个问题?