android - 收到此错误“模块'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.
问题是什么,如何解决?
解决方案
删除后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
.
如果两个文件必须不同,请重命名其中一个并确保导入正确。
推荐阅读
- c# - 在 ASP.Net 中找不到资源错误
- javascript - 如何匹配 URL 但不是模式
- c# - 在 ASP.Net MVC 中使用 JSON 从 AngularJS 调用 MVC 控制器
- c# - 使用附加模式属性后,iText7 将签名转换为不可见签名
- python - 如何使用 selenium python 验证 html5 验证
- python - 在python中合并两个字符串
- performance - Android Studio 加载大数据以在 Recyclerview 中显示
- node.js - 上传新命令后,Discord.js 应用程序在启动时不断崩溃
- python - 退格 \n \t 在长字符串 python argparse 中不起作用
- javascript - 如何在 POST 方法中使用 dns.lookup()?