碰巧我有一个主应用程序模块
构建.gradle
dynamicFeatures = [":myFeature"]
viewBinding {
enabled = true
}
Run Code Online (Sandbox Code Playgroud)
AdroidManifest.xml
package="com.mydomain.testproject"
Run Code Online (Sandbox Code Playgroud)
使用我在整个应用程序 eq 中使用的一些常见布局: app/res/error_view.xml
我有动态特征文件
构建.gradle
viewBinding {
enabled = true
}
Run Code Online (Sandbox Code Playgroud)
AdroidManifest.xml
package="com.mydomain.testproject.myFeature"
Run Code Online (Sandbox Code Playgroud)
myfeature_fragment.xml
<include
android:id="@+id/error_view"
layout="@layout/error_view"
android:visibility="gone" />
Run Code Online (Sandbox Code Playgroud)
我的特征片段.kt
binding = MyFeatureFragmentBinding.bind(view)
Run Code Online (Sandbox Code Playgroud)
问题来了。当我尝试访问binding.errorViewAS 时显示错误Cannot access class 'com.mydomain.testproject.myFeature.databinding.ErrorViewBinding'. Check your module classpath for missing or conflicting dependencies
奇怪的是,当我检查生成的MyFeatureFragmentBinding类时,它包含以下内容
@NonNull
public final View errorView;
Run Code Online (Sandbox Code Playgroud)
所以我想 AS 知道的比它显示给我的要多。我还发现在主模块的生成类中,原始ErrorViewBinding和 OFC 从那里可以完美地工作。
有人设法从另一个功能模块引用通用布局?
或者如何强制生成的公共视图绑定的类型?