在我们的应用程序中,我们开始使用动态功能模块(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)
}下载模块工作,下载后在列表中有一个绘图文件。但在应用程序重启之后-
No package ID 7e found for ID 0x7e010219
Fatal Exception: android.content.res.Resources$NotFoundException
Resource ID #0x7e0101e4模块已安装,从模块获取的文件列表没有问题...
发布于 2021-01-13 20:02:39
已解决:
只有在“会话”中安装之后,我们才能使用应用程序上下文。重新启动app和SplitCompat.install() (在应用程序和活动中)后,所有DFM资源仅可由活动上下文使用
https://stackoverflow.com/questions/65421306
复制相似问题