Android 在动态交付模块中使用时,应用程序模块尺寸/颜色的值不正确

Android 在动态交付模块中使用时,应用程序模块尺寸/颜色的值不正确,android,android-resources,dimension,dynamic-feature-module,dynamic-delivery,Android,Android Resources,Dimension,Dynamic Feature Module,Dynamic Delivery,我有应用程序模块和一个名为“聊天”的动态模块。我有一个布局和片段驻留在聊天模块中,在布局中有一个android:textSize=“@dimen/sp20”writed。Dimen是在应用程序模块中定义的,因为我运行它时它显示的文本大小不正确。我调试了它,它等于12sp(36用于xxhdpi设备) 我试图通过编程使用dimen,但结果相同。(landing\u page\u toolbar\u title.setTextSize(TypedValue.COMPLEX\u UNIT\u PX,re

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

我试图通过编程使用dimen,但结果相同。(
landing\u page\u toolbar\u title.setTextSize(TypedValue.COMPLEX\u UNIT\u PX,resources.getDimension(com.sendbird.R.dimen.sp20))
)。小心使用应用程序模块包中的“R”

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


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

下载动态模块时,其代码和资源将放在应用程序的内部存储器中。可能此存储的状态不一致或过时(包括应用程序中的缓存资源)。如果问题发生在开发/测试期间,请尝试清除应用程序的内部存储


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

您是否可以尝试使用“
app\u sp20
”前缀更新您的
app模块资源
,这将大部分得到解决

通用名称大部分被SDK/modules覆盖


尽管如此,您还是要面对这个问题,然后使用反射作为最后一个选项。

如何从动态模块中访问并膨胀片段?@rmunge动态模块可以访问应用程序中的所有可用资源。简单的R.dimen.sp30I已经编写了SplitCompat.install(这个);在应用程序类attachBaseContext方法中,如前所述。那么动态模块中的活动和片段的SplitCompat.installActivity呢?也尝试过了。在基本活动中写入,但不起作用。