我正在使用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;
但我不知道发生这种情况的原因以及如何将其改为最终版。
答案 0 :(得分:1)
您绑定的模型可能在其变量中包含最终修饰符。
答案 1 :(得分:1)
当您的项目与应用程序之外的库或外部插件具有依赖性时,会发生此错误。 出现此问题的原因是,当您与多个库/插件相关时,生成的ID可能会发生冲突。