android数据绑定:如何获取有用的错误消息

时间:2016-05-09 10:27:00

标签: android android-databinding

在android studio 2.1中,来自xml错误的编译时错误消息完全没有帮助:

Error:(11, 41) error: package mypackage.databinding does not exist
Error:(15, 13) error: cannot find symbol class MyActivityBinding

真正的错误通常是"没有这样的属性android:adapter"或者"变量foo不包含属性栏&#34 ;或类似的东西。但是它没有显示出这样的错误,而是显示了上面那些无用的错误,它们只告诉你由于某些未知的错误而没有生成绑定。

4 个答案:

答案 0 :(得分:15)

我在Android Studio 4.0中使用的方式:

  1. Build: failed面板上选择顶级Build Output项目

    Failed build output panel

  2. 在右侧单击Run with --stacktrace。构建完成后,再次在左侧面板上选择顶部的Build: failed项目。您将在右侧面板上获得数据绑定错误描述:

    enter image description here 就我而言:

    [数据绑定] {“ msg”:“找不到\ u003ccom.google.android.material.slider.Slider app:value \ u003e的吸气剂,它接受参数类型\ u0027java.lang.Float \ u0027 \ n \ n如果绑定适配器提供了吸气剂,请检查适配器的批注是否正确以及参数类型是否匹配。“,”文件“:” SliderDatabinding \ src \ main \ res \ layout \ activity_main.xml“,” pos“:[{” line0“:14,” col0“:8,” line1“:21,” col1“:41}]}

答案 1 :(得分:3)

现在没有简单的方法。通常,如果您遇到这样的编译错误并且错误消息指向缺少的数据绑定类,则通常是布局中的错误引用(即,您尝试访问您指定的不暴露的成员类 - 通常在您进行c& p布局时发生)。

更糟糕的是,当你使用其他代码生成库(Icepick,Butterknife等)时,真正的罪魁祸首通常是代码与绑定完全无关。因此,当我的代码中出现类似这样的内容时,我通常会检查Gradle Console视图并从最终读取它,忽略与数据绑定相关的所有错误消息,如“缺少类”或“包不存在”

答案 2 :(得分:2)

获得正确错误的一种方法是在终端中使用' - info'运行gradle,如:

gradle :app:build --info

这并没有完全融入AS,所以我无法接受这个答案。

答案 3 :(得分:0)

在Toogle View上点击链接,在“构建”图标下将为您提供详细日志

enter image description here