Неправильное значение размера / цвета модуля приложения при использовании в модуле динамической доставки
У меня есть модуль приложения и один динамический модуль с именем "чат". У меня есть макет, а фрагмент находится в модуле чата, в макете естьandroid:textSize="@dimen/sp20"
написано. Dimen определен в модуле приложения из-за того, что при запуске он показывает неправильный размер текста. Отладил, он равен 12sp (36 для устройства xxhdpi).
Я попытался использовать dimen программно, но результат тот же. (landing_page_toolbar_title.setTextSize(TypedValue.COMPLEX_UNIT_PX, resources.getDimension(com.sendbird.R.dimen.sp20))
). Тщательно использованная буква "R" из пакета модуля приложения.
Когда я определяю такое же значение в модуле чата, оно работает отлично. Но для нашего сценария это невыполнимо. У меня есть тонны строковых, размерных и цветных ресурсов с несколькими конфигурациями, написанными в модуле приложения. Поделитесь пожалуйста возможным решением.
2 ответа
Можете попробовать, обновив app module resources
с "app_sp20
", в основном она будет решена.
Общие имена в основном заменяются SDKs/modules
Тем не менее, вы сталкиваетесь с проблемой и используете отражение в качестве последнего варианта.
Когда динамический модуль загружается, его код и ресурсы помещаются во внутреннюю память приложения. Возможно, это хранилище имеет несогласованное или устаревшее состояние (включая кешированные ресурсы из приложения). Если проблема возникает во время развертывания / тестирования, попробуйте очистить внутреннюю память вашего приложения.
Также убедитесь, что вы правильно инициализировали SplitCompat для своего приложения и всех действий / фрагментов вашего динамического модуля, как описано: здесь. Документация довольно расплывчата о том, что на самом деле делает SplitCompat, но неправильная его инициализация также может повлиять на доступ к ресурсам приложения из динамических модулей.