Android数据绑定生成错误:需要常量表达式
我正在使用引用数据绑定来编写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开关案例错误的原因吗 编辑: 我发现出现这个问题的原
> '/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可能会冲突。您是否尝试了干净的构建?是的,但相同的错误在我的案例中,有两个插件应用于我的项目。删除此选项可以更正此问题。但是在我的项目中,我必须应用这个插件来处理其他依赖项。你有没有办法在不删除这些插件的情况下解决这个问题?