【问题标题】:Android DFM Dynamic FeatureModule Resources NotFoundExceptionAndroid DFM 动态 FeatureModule 资源 NotFoundException
【发布时间】:2021-04-01 21:37:48
【问题描述】:

在我们的应用中,我们开始使用动态功能模块 (DFM) 来获取大量资源。我们将大部分可绘制对象移至 DFM 并在需要时加载它们。

用于使用 Provider 和应用程序上下文(如文档中所示)加载可绘制对象,并且仅在加载 dfm 时才有效

val drawable = ContextCompat.getDrawable(applicationContext, DFM.getDrawableResID(m_drawableName));

DFM.getDrawableResID(m_drawableName) - 从模块返回资源 ID (DrawableRes)

在应用程序类中重写 attachBaseContext

override fun attachBaseContext(base: Context ) {
        super.attachBaseContext(base)
        SplitCompat.install(this)
    }

在主模块 attachBaseContext 的 MainActivity 中也被覆盖

override fun attachBaseContext(newBase: Context) {
        super.attachBaseContext(newBase)
        SplitCompat.installActivity(this)
    }

下载模块有效,下载后列表中有一个可绘制对象。 但是在应用程序重启后总是 -

No package ID 7e found for ID 0x7e010219
Fatal Exception: android.content.res.Resources$NotFoundException
Resource ID #0x7e0101e4

已安装模块并从模块中获取文件列表没有问题...

【问题讨论】:

    标签: android dynamic-feature-module dynamic-delivery


    【解决方案1】:

    已解决:

    只有在“会话”中安装后,我们才能使用应用程序上下文。 重新启动应用程序和 SplitCompat.install()(在应用程序和活动中)后,所有 DFM 资源仅在活动上下文中可用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2014-07-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多