在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 ;或类似的东西。但是它没有显示出这样的错误,而是显示了上面那些无用的错误,它们只告诉你由于某些未知的错误而没有生成绑定。
答案 0 :(得分:15)
我在Android Studio 4.0中使用的方式:
在Build: failed
面板上选择顶级Build Output
项目
在右侧单击Run with --stacktrace
。构建完成后,再次在左侧面板上选择顶部的Build: failed
项目。您将在右侧面板上获得数据绑定错误描述:
[数据绑定] {“ 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)