В Dynamic Feature Module нет доступа к файлу ресурса
Я пытаюсь реализовать динамический тип доставки приложения. Сначала я создаю новый проект, после этого создаю Модуль для динамических шагов для этого
Выберите "Файл"> "Новый"> "Новый модуль" в строке меню и диалоговом окне "Создать новый модуль", выберите "Модуль динамических элементов" и нажмите "Далее".
структура папки
Я создаю класс и хочу получить доступ к папке ресурсов для использования макета, папки для рисования.
Также реализован в основном модуле Gradle
реализация 'com.google.android.play:core:1.2.0' и dynamicFeatures = [":dynamic_feature"]
но получаю ошибку для динамического модуля Ошибка отображения
ошибка: не удается найти символьную переменную Activity_main
ошибка: не удается найти переменную символа iv_forward
ошибка: не удается найти переменную символа seekBar
https://developer.android.com/studio/projects/dynamic-delivery https://proandroiddev.com/dynamic-feature-module-android-ondemand-module-android-app-bundle-ea0d872b32d
3 ответа
Для тех, кто сталкивается с той же проблемой: вы можете получить ресурсы только из базового модуля. Использование:
com.example.base_module.R.drawable.item
вместо выключенного по умолчанию R.drawable.item
Если вы находитесь внутри модуля динамических функций и пытаетесь получить доступ к рисованию другого модуля. Вы должны добавить имя пакета этого модуля (в котором находится drawable) в качестве префикса, как показано ниже
btnOk.setImageResource(com.example.mysampleproject.R.drawable.Ok)
Эта проблема выглядит как проблема импорта, связанная с рефакторингом.
При перемещении кода в другой модуль убедитесь, что
- переместить связанные файлы ресурсов макета
- обновить импорт, чтобы соответствовать новому имени пакета
Несмотря на то, что 1. не является строго необходимым, рекомендуется использовать файлы макетов без общего доступа в том же модуле, что и фрагмент кода, который их отображает.