Получение этой ошибки "Модули 'base' и 'moduleA' содержат запись 'res/drawable/xyz.xml' с другим содержимым".

Module A - это динамический функциональный модуль с зависимостью, которая является aar lib.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':app')
    implementation(name:'lib', ext:'aar')
}

Он успешно строится и устанавливается на эмуляторе, но всякий раз, когда я хочу создать пакет приложений, я получаю следующую ошибку:

Modules 'base' and 'moduleA' contain entry 'res/drawable/xyz.xml' with different content.

Если мне нужно переименовать xyz.xml в модуле приложения, я получаю сообщение об ошибке:

../moduleA/build/intermediates/metadata_feature_manifest/fullDebug/processFullDebugManifest/metadata-feature/AndroidManifest.xml:61:13-63:50: AAPT: error: resource drawable/xyz (aka my.app.main.drawable/xyz) not found.

Это одна из проблем, освещенных в статье Plaid о модуляризации.

Чтобы решить эту проблему, мне пришлось создать пустой xyz.xml в модуле приложения, но при создании пакета приложения я получаю сообщение об ошибке:

Modules 'base' and 'moduleA' contain entry 'res/drawable/xyz.xml' with different content.

В чем проблема и как ее решить?

2 ответа

Как вы удалили base/.../xyz.xmlвы не сможете получить к нему доступ из своего базового модуля (приложения).
Если вы переименуетеbase/.../xyz.xml к base/.../zzz.xml вам также придется изменить ссылки на него.

Если у вас нет доступа base/.../xyz.xmlв вашем базовом модуле вообще можно удалить файл. Затем вам нужно убедиться, что весь ваш импорт не указывает наbase.R.drawable.xyz но feature.R.drawable.xyz.

Если оба файла действительно могут быть одинаковыми, удалите feature/.../xyz.xml и убедитесь, что вы только импортируете base.R.drawable.xyz.

Если оба файла должны быть разными, переименуйте любой из них и убедитесь, что ваш импорт правильный.

Оба модуля base а также moduleA похоже зависят от того же AAR.

Вместо этого поместите AAR как зависимость модуля base только. moduleA должен иметь возможность найти ресурс через транзитивную зависимость модуля base.

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