Android Data-Binding导致的一个报错:dataBindingGenBaseClassesRelease

Android Data-Binding导致的一个报错:dataBindingGenBaseClassesRelease

今天编辑代码过程中出现一个报错:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:dataBindingGenBaseClassesDebug'.
> couldn't make a guess for com.mcxtzhang.indexlib.IndexBar.widget.IndexBar

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 14s

这个问题百思不得其解,搜索也没找到很好的办法。后来看到 DATa Binding 不能使用大写包名的问题。发现在 xml 中,第三方库的包名路径确实是大写的。

在不修改第三方库,或者更换库的情况下,只能自行处理。

可以在自己的项目路径下,新建一个类,继承自这个第三方的类库,如下:

package com.example.carmodels.views;

import android.content.Context;
import android.util.AttributeSet;

public class IndexBar extends com.mcxtzhang.indexlib.IndexBar.widget.IndexBar {
    public IndexBar(Context context) {
        super(context);
    }

    public IndexBar(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public IndexBar(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
}

修改前:

修改前

修改后:

修改后

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://zwc365.com/2021/01/18/data-binding-error-package

Buy me a cup of coffee ☕.