安卓本地离线打包引用weex_google-map-release.aar 包就会Manifest merger failed with multiple errors问题
安卓本地离线打包引用weex_google-map-release.aar 包就会Manifest merger failed with multiple errors问题
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | 11 | HBuilderX |
操作步骤:
如题
预期结果:
可以正常打包
实际结果:
不能正常打包
bug描述:
uniapp项目本地导出安卓资源后引用到原生安卓模板中 在本地离线打包时 引用weex_google-map-release.aar 包就会Manifest merger failed with multiple errors问题,如果这个不引用 则正常

离线打包谷歌配置参考文档:https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/map.html#谷歌地图
安卓 引用weex_google-map-release.aar就报了 不引用就正常 用的离线sdk是4.85版本 但是不知道为什么现在文档上找不到
回复 9***@qq.com: <meta-data android:name="com.google.android.geo.API_KEY" android:value="%api_key%" tools:replace="android:value" />参考文档吧最后一条配置改成这样试试
详细如图
<manifest xmlns:tools="http://schemas.android.com/tools"> 参考这个调整,或者你点击tools,android studio会有修复方案。
回复 DCloud_Android_zl: 好的 可以打包了 感谢 耐心解答~
这个错误是典型的 Android Manifest 合并冲突。weex_google-map-release.aar 中自带的 AndroidManifest.xml 与您主项目的清单文件存在配置冲突。
主要原因:
aar 包中的清单可能包含了与您主项目重复或冲突的声明,例如:
<application>标签属性冲突:最常见的是android:allowBackup、android:supportsRtl或android:theme等属性在主项目和aar中被分别声明且值不同。- 权限声明重复或冲突。
- 组件(Activity/Service 等)声明冲突。
解决方案:
在您主模块的 build.gradle 文件(通常是 app/build.gradle)的 android 配置块中,添加 manifestPlaceholders 和 packagingOptions,并检查依赖。
步骤:
-
在
android块内添加/修改以下配置:android { // ... 其他配置 packagingOptions { // 确保不重复包含某些文件,避免冲突 exclude 'AndroidManifest.xml' // 如果还有其他冲突,可以添加更多排除规则 // exclude 'lib/armeabi-v7a/xxx.so' } } -
更关键的是,在
android->defaultConfig块中,使用manifestPlaceholders来覆盖或提供必要的占位符值,这可以解决大部分属性冲突:android { defaultConfig { // ... 其他配置 manifestPlaceholders = [ // 确保这些关键属性在合并时被统一 "android:allowBackup": "true", // 或 false,根据你的需求,但必须一致 "android:supportsRtl": "true", // 如果有用到地图相关的权限或API Key,也可能需要在这里声明 // "com.google.android.geo.API_KEY": "你的谷歌地图API密钥" ] } } -
检查依赖版本统一:确保项目中所有模块(包括
weex_google-map-release.aar间接引入的)使用的com.android.support或androidx库版本一致。在app/build.gradle的dependencies块中,尝试强制指定常用库的版本:dependencies { implementation fileTree(include: ['*.aar'], dir: 'libs') // 如果有引入其他库,统一核心支持库版本 // 例如,如果使用androidx // implementation 'androidx.appcompat:appcompat:1.3.1' // 并确保所有依赖都对齐到这个版本 } -
执行清理和重建:完成上述更改后,在 Android Studio 中执行:
Build->Clean ProjectBuild->Rebuild Project
如果问题依旧:
- 检查合并报告:在 Android Studio 的
Build输出窗口中,查找详细的Manifest merger failed错误日志。通常会明确指出是哪个属性或组件冲突。根据具体错误信息调整上述配置。 - 查看
aar中的清单:将weex_google-map-release.aar重命名为.zip并解压,查看其中的AndroidManifest.xml文件,直接了解其声明内容,以便针对性解决冲突。 - 临时方案:在
app/build.gradle的android块中添加以下配置,强制忽略所有清单合并错误(不推荐,仅用于测试定位问题):android { ... lintOptions { abortOnError false checkReleaseBuilds false } }


