【问题标题】:Android databinding build error: constant expression requiredAndroid数据绑定构建错误:需要常量表达式
【发布时间】:2017-09-13 13:27:49
【问题描述】:

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

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

> '/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;

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

【问题讨论】:

  • 你尝试过干净的构建吗?
  • 是的,但是同样的错误

标签: android android-layout data-binding


【解决方案1】:

当您的项目依赖于应用程序之外的库或外部插件时,会发生此错误。 这个问题的原因是,当您依赖多个库/插件时,生成的 id 可能会发生冲突。

【讨论】:

  • 就我而言,我的项目有两个插件。删除此问题更正了问题。但是在我的项目中,我必须应用这个插件来处理其他依赖项。您是否有任何想法在不删除这些插件的情况下纠正此问题?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-15
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多