为什么Android Studio中ScrollView相关XML布局会出现资源编译失败报错
问题原因及解决方案
核心错误原因
你使用了Data Binding布局的根<layout>标签,但错误地给该标签添加了仅View组件支持的android:layout_width、android:layout_height、tools:context属性。<layout>只是Data Binding的语法包装标签,不属于Android View体系,不支持上述属性,编译器解析布局结构时出现异常,就会报出对应位置的ParseError。
修正方案
- 删掉
<layout>标签上的三个非法属性,命名空间保留即可,修改后的<layout>开头代码如下:
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools">
- 如果你需要保留
tools:context声明,将该属性移到<ScrollView>标签中即可,修改后的ScrollView代码:
<ScrollView android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".SizeFragment">
后续排查步骤
如果修改后仍报错,依次执行以下操作:
- 检查模块级
build.gradle文件中是否已开启Data Binding,确保android配置块内存在以下声明:buildFeatures { dataBinding true } - 依次点击Android Studio顶部菜单栏
Build > Clean Project、Build > Rebuild Project,清空旧的编译缓存 - 检查
<variable>标签中声明的OrderModel、SizeFragment类的包名拼写、类名拼写是否和实际代码一致
内容的提问来源于stack exchange,提问作者Cennamo
相关产品推荐
相关产品推荐

