获取错误:使用数据绑定作为泛型类型构建多模块项目和类时,包com.mydomain.databinding不存在

时间:2017-05-17 13:45:23

标签: android data-binding android-gradle android-databinding

我有一个多模块项目,我将数据绑定类设置为泛型类型要求:

public abstract class BaseActivity<DataBinding extends ViewDataBinding> {
    //Rest of the code...
}

但是,如果我在子模块上扩展此活动,有时会出现以下构建错误:

  

错误:找不到符号public void myMethod(MyActivityBinding dataBinding){

     

错误:包com.mydomain.databinding不存在import com.mydomain.databinding.MyActivityBinding;

有时,创建另一个从MyActivity延伸并将其放在主app模块上的活动可以解决问题。但在某些情况下,我无法确定问题,并且我始终得到相同的错误消息。

我已经尝试过清理和重建项目,并且还使Android Studio缓存无效并重新启动它而没有成功。

关于如何至少调查可能导致此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

不确定问题的根本原因但我有类似的问题并在此处发布了答案https://stackoverflow.com/a/47718646/3160214

简而言之,这就是解决方案的样子:

class A<BINDING extends ViewDataBinding> extends BaseActivity<BINDING> {
    protected ABinding binding;

    void init(){
        binding = (ABinding) DataBindingUtil.setContentView(this, R.layout.a);
    }
}

并将相同的绑定传递给子模块

中的子类
class B<ABinding> {
    // you can use instance in this class
}