启用视图绑定,其中一个 Module 编译时报:Unresolved reference: databinding

在AS 3.6.3和Gradle 6.5-milestone-1下,启用ViewBinding导致子Module编译失败,表现为无法识别数据绑定类。问题源于layout.xml中tools:context属性使用绝对路径而非相对路径。调整此设置后,编译恢复正常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AS 版本:3.6.3,Gradle 版本:6.5-milestone-1

启用前,编译正常。修改 build.gradle(Module),增加 

viewBinding{
        enabled = true
    }

结果编译时,提示无法找到生成的视图 binding 类。

令人奇怪的是,主程序的 Module 编译正常,可以使用视图 binding 类,而包含进来的 module 无法通过。报错:

Unresolved reference: databinding

仔细查看 layout.xml 文件,发现主程序的 tools:context=XXX 使用的是相对包名,而子 module 的 layout.xml 文件使用的是绝对的包名。

<androidx.constraintlayout.widget.ConstraintLayout 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"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:padding="5dp"
        tools:context="com.domain.project.components.myview">

子 module 的根包名在 manifest.xml 是定义为:com.domain.project.components,尝试将 tools.context 的值修改为 “.myview”,再次编译成功,不再提示 unresolved reference: databinding。

不是很确定这是不是问题所在,作为记录,仅参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值