Android数据绑定构建错误:需要常量表达式

时间:2017-09-13 13:27:49

标签: android android-layout data-binding

我正在使用DataBinding编写Android应用程序,引用https://developer.android.com/topic/libraries/data-binding/index.html

但是在构建我的项目时,它在生成的类中显示错误为

> '/databinding/DataBinderMapper.java:10: error: constant expression
> required.'

生成的类 DataBinderMapper.java 中的switch语句中发生此错误(此文件是用于数据绑定的自动生成的文件)

任何人都知道在自动生成的buld文件中发生此java switch case错误的原因是什么?

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

public static int activity_main=0x7f04001c;

实际上它应该是

public static final int activity_main=0x7f04001b;

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

2 个答案:

答案 0 :(得分:1)

您绑定的模型可能在其变量中包含最终修饰符。

答案 1 :(得分:1)

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