5

我有应用程序模块和一个名为“聊天”的动态模块。我有一个布局和片段驻留在聊天模块中,布局中有一个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”。

当我在聊天模块中定义相同的值时,它可以完美运行。但这对于我们的场景是不可行的。我有大量的字符串、尺寸、颜色资源,在应用程序模块中编写了多种配置。请分享可行的解决方案。

附上截图以便更好地理解。基于反射的结果比较

4

2 回答 2

1

你可以尝试用app module resourcesapp_sp20”前缀更新你的,它会得到大部分解决。

常用名称大多被SDKs/modules

尽管如此,您仍然面临问题,然后将反射用作最后一个选项。

于 2020-08-31T14:48:50.510 回答
0

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

还要确保为您的应用程序和动态模块的所有活动/片段正确初始化 SplitCompat,如下所述:here。文档对于 SplitCompat 的实际操作非常模糊,但未正确初始化它也会影响从动态模块访问应用程序资源。

于 2020-08-29T17:21:05.087 回答