【发布时间】:2020-03-04 12:36:45
【问题描述】:
碰巧我有一个主应用程序模块
build.gradle
dynamicFeatures = [":myFeature"]
viewBinding {
enabled = true
}
AdroidManifest.xml
package="com.mydomain.testproject"
我在整个应用程序中使用的一些常见布局
情商:app/res/error_view.xml
我有动态功能文件
build.gradle
viewBinding {
enabled = true
}
AdroidManifest.xml
package="com.mydomain.testproject.myFeature"
myfeature_fragment.xml
<include
android:id="@+id/error_view"
layout="@layout/error_view"
android:visibility="gone" />
MyFeatureFragment.kt
binding = MyFeatureFragmentBinding.bind(view)
问题来了。
当我尝试访问binding.errorView AS 时显示错误Cannot access class 'com.mydomain.testproject.myFeature.databinding.ErrorViewBinding'. Check your module classpath for missing or conflicting dependencies
奇怪的是,当我检查生成的MyFeatureFragmentBinding 类时,它包含以下内容
@NonNull
public final View errorView;
所以我想 AS 知道的比它对我显示的要多。
我还在主模块生成的类中发现了原始的ErrorViewBinding 和OFC,它从那里完美地工作。
有人设法从另一个功能模块中引用了一个通用布局?
或者如何强制生成的公共视图绑定的类型?
【问题讨论】:
-
作为一个愚蠢的解决方法,我做了一些更改,我将
errorView包装为自定义视图(仍在应用程序模块中)并在布局中引用<com.mydomain.testproject.common.ErrorView..而不是<include.有了这个 ViewBinding 工作,但它不是真正的解决方案。 -
您找到更好的解决方案了吗?
-
不,目前我必须使用带有自定义视图的解决方法才能使其正常工作。
-
您在 google issuetracker 中打开报告了吗?
-
@Stumi 解决方法现在在我们的项目中是首选,因为我们不想使用数据绑定 :(
标签: android android-viewbinding dynamic-feature-module