在动态交付模块中使用时应用模块 dimen/color 的值不正确

Incorrect value of app module dimen/color when using in dynamic-delivery module

我有应用程序模块和一个名为“聊天”的动态模块。我有一个布局和片段驻留在聊天模块中,在布局中有一个 android:textSize="@dimen/sp20" 写的。 Dimen 在应用程序模块中定义,因为当我 运行 它显示不正确的文本大小。我调试了一下,等于12sp(xxhdpi设备是36)。

我尝试以编程方式使用 dimen,但结果相同。 (landing_page_toolbar_title.setTextSize(TypedValue.COMPLEX_UNIT_PX, resources.getDimension(com.sendbird.R.dimen.sp20))) 。谨慎使用应用程序模块包中的“R”。

当我在聊天模块中定义相同的值时,它工作得很好。但是对于我们的场景是不可行的。我有大量的字符串、维度、颜色资源,这些资源具有在应用程序模块中编写的多种配置。 请分享可行的解决方案。

附上屏幕截图以便更好地理解。

下载动态模块后,它的代码和资源将放置在应用程序的内部存储中。也许此存储的状态不一致或已过时(包括来自应用程序的缓存资源)。如果在开发/测试期间出现问题,请尝试清除应用的内部存储。

另外请确保为您的应用程序和动态模块的所有活动/片段正确初始化 SplitCompat,如下所述:here。关于 SplitCompat 实际做什么的文档非常模糊,但没有正确初始化它也可能影响从动态模块访问应用程序资源。

您可以尝试用“app_sp20”前缀更新您的 app module resources 吗?大部分问题都会得到解决。

常用名称大多被 SDKs/modules

覆盖

仍然,你遇到了问题然后使用反射作为最后的选择。