问题描述
在我们的应用中,我们开始使用动态特征模块 (DFM) 来处理大资源。我们将大部分可绘制对象移至 DFM 并在需要时加载它们。
用于使用提供程序和应用程序上下文加载可绘制对象(如文档中所述),并且仅在加载 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)
}
在主模块的 MainActivity 中也覆盖了 attachBaseContext
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(newBase)
SplitCompat.installActivity(this)
}
下载模块工作,下载后列表中有一个drawable。 但应用重启后总是 -
No package ID 7e found for ID 0x7e010219
Fatal Exception: android.content.res.Resources$NotFoundException
Resource ID #0x7e0101e4
解决方法
已解决:
我们只能在“会话”中安装后才能使用应用程序上下文。 重新启动应用程序和 SplitCompat.install()(在应用程序和活动中)后,仅活动上下文可用的所有 DFM 资源