打包时一直报错失败 uni-app add 'tools:replace=\"android:value\"' to <meta-data>

打包时一直报错失败 uni-app add ‘tools:replace=“android:value”’ to <meta-data> 现在一直提示打包失败

项目 版本号
HBuilderX版本号 5.07
uniapp 编译器版本 5.07
云打包服务器SDK版本 5.07
[PackagePath]/app/AndroidManifest.xml:79:13-45 Error:
Attribute meta-data#ZX_CHANNEL_ID[@value](/user/value) value=(C01-WJshP3s2lz1f) from [adalliance_adn_sdk.4.7.6.aar] AndroidManifest.xml:79:13-45
is also present at [com.getui:gtsdk:3.3.7.0] AndroidManifest.xml:45:13-45 value=(C01-GEztJH0JLdBC).
Suggestion: add 'tools:replace="android:value"' to <meta-data> element at AndroidManifest.xml to override.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processReleaseMainManifest'.
> Manifest merger failed with multiple errors, see logs

* Try:
> Run with --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processReleaseMainManifest'.
[省略冗长堆栈]
BUILD FAILED in 4m 18s
gradle build error: 1

更多关于打包时一直报错失败 uni-app add 'tools:replace=\"android:value\"' to <meta-data>的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

目前已确认是uni-ad中的华夏乐游与uni-push使用个推SDK冲突导致的,暂时可先去掉华夏乐游避免。

更多关于打包时一直报错失败 uni-app add 'tools:replace=\"android:value\"' to <meta-data>的实战教程也可以访问 https://www.itying.com/category-93-b0.html


要怎么解决这个问题,AndroidManifest.xml加了的没有用

回复 小果叮: HBuilderX5.07版本会回复华夏乐游SDK版本来规避此问题,后续新版本正在联系SDK提供方华夏乐游和个推确认解决方案。

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

这个错误是由于 Android Manifest 合并冲突导致的。你的项目中同时集成了两个 SDK(adalliance_adn_sdk 和 gtsdk),它们都对同一个 meta-data 属性 ZX_CHANNEL_ID 设置了不同的值,导致打包时无法确定该使用哪个值。
解决方案 你需要在 manifest.json 中通过 buildFeatures 配置来解决这个冲突。具体操作如下:
在 manifest.json 的源码视图中,找到 app-android -> distribute 节点,添加 packagingOptions 配置项,使用 tools:replace 来覆盖冲突的属性值。
参考配置示例: {
“app-android”: {
“distribute”: {
“packagingOptions”: [
“tools:replace=“android:value””
]
}
}
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

这个配置会让打包工具在合并 Manifest 时,使用你项目中定义的 ZX_CHANNEL_ID 值来覆盖 SDK 中自带的值。
补充说明

这个错误是典型的 Manifest 合并冲突,当多个 AAR 依赖对同一个 meta-data 属性设置了不同值时就会触发
tools:replace 是 Android 官方提供的解决 Manifest 合并冲突的标准方案
如果还有其他类似的 meta-data 冲突,也可以用同样的方式处理

如果添加上述配置后仍有其他冲突,请查看完整的错误日志,找出所有冲突的属性名,然后在 packagingOptions 中针对性地添加对应的 tools:replace 配置。 内容为 AI 生成,仅供参考

该错误是Android原生打包时的Manifest合并冲突:两个SDK(adalliance_adn_sdk和getui:gtsdk)都定义了名为ZX_CHANNEL_ID<meta-data>节点,且android:value值不同,导致合并失败。

解决方式:在主AndroidManifest.xml中对这个<meta-data>节点添加tools:replace="android:value"声明,告知合并工具用当前值覆盖冲突项。

如果你使用的是HBuilderX云打包,可在manifest.json中通过原生配置注入这段声明。具体步骤:

  1. 打开manifest.json,在app-plusdistributeandroidmanifest节点下添加:
    "manifest": {
        "<manifest xmlns:tools=\"http://schemas.android.com/tools\">": {
            "<application>": {
                "<meta-data android:name=\"ZX_CHANNEL_ID\" android:value=\"C01-WJshP3s2lz1f\" tools:replace=\"android:value\" />": {}
            }
        }
    }
回到顶部