首页 > 解决方案 > 收到此错误“模块'base'和'moduleA'包含具有不同内容的条目'res/drawable/xyz.xml'。”

问题描述

moduleA 是一个具有依赖关系的动态功能模块,它是一个 aar 库。

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.

如果我应该在 app 模块中重命名 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 的模块化文章中强调的问题之一。

为了解决这个问题,我不得不在 app 模块中创建一个空的 xyz.xml,但是在创建 app-bundle 时,我得到了错误:

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

问题是什么,如何解决?

标签: androidandroid-app-bundledynamic-feature-moduledynamic-delivery

解决方案


删除后base/.../xyz.xml,您将无法从基本模块(应用程序)访问它。
如果您重命名base/.../xyz.xmlbase/.../zzz.xml,则还必须更改对它的引用。

如果您根本不访问 base/.../xyz.xml基本模块,则可以删除该文件。然后你必须确保你所有的导入都不是指向base.R.drawable.xyz而是指向feature.R.drawable.xyz.

如果两个文件实际上可能相同,请删除feature/.../xyz.xml并确保仅导入base.R.drawable.xyz.

如果两个文件必须不同,请重命名其中一个并确保导入正确。


推荐阅读