小编Stu*_*umi的帖子

跨动态功能的 Android ViewBindings

碰巧我有一个主应用程序模块

构建.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 从那里可以完美地工作。

有人设法从另一个功能模块引用通用布局?
或者如何强制生成的公共视图绑定的类型?

android android-viewbinding dynamic-feature-module

6
推荐指数
1
解决办法
872
查看次数