В 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. переместить связанные файлы ресурсов макета
  2. обновить импорт, чтобы соответствовать новому имени пакета

Несмотря на то, что 1. не является строго необходимым, рекомендуется использовать файлы макетов без общего доступа в том же модуле, что и фрагмент кода, который их отображает.

Другие вопросы по тегам