记Manifest合并异常

在导入依赖时遇到Manifest merger failed错误,尝试修改app模块AndroidManifest.xml的replace属性未解决问题。通过查看详细日志并对比其他项目,发现并非版本差异引起。进一步搜索后,发现Gradle版本过低是问题根源。升级Gradle版本到4.0.0并更新distributionUrl后,问题得到修复。此经验提醒我们考虑Gradle版本可能带来的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:我在一个demo里面导入一个依赖的时候,报了如下错误:

> Task :app:processDebugManifest FAILED
[com.test.haha:pay-s:1.1.5] /Users/xxxx/.gradle/caches/transforms-1/files-1.1/pay-s-1.1.5.aar/58880848b778871b82d9587be82cd8c2/AndroidManifest.xml:14:9-63 Error:
 Missing 'package' key attribute on element package at [com.test.haha:pay-s:1.1.5] AndroidManifest.xml:14:9-63
[com.test.haha:pay-s:1.1.5] /Users/xxxx/.gradle/caches/transforms-1/files-1.1/pay-s-1.1.5.aar/58880848b778871b82d9587be82cd8c2/AndroidManifest.xml:17:9-52 Error:
 Missing 'package' key attribute on element package at [com.test.haha:pay-s:1.1.5] AndroidManifest.xml:17:9-52
[com.test.haha:pay-s:1.1.5] /Users/xxxx/.gradle/caches/transforms-1/files-1.1/pay-s-1.1.5.aar/58880848b778871b82d9587be82cd8c2/AndroidManifest.xml Error:
 Validation failed, exiting

See http://g.co/androidstudio/manifest-merger for more information about the manifest merger.


Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed with multiple errors, see logs

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

思考:

1. 看日志知道是manifest的属性冲突了,按照惯性思维肯定是要去app模块的AndroidManifest.xml添加一个replace属性。于是这么做了,但是并未解决问题

然后运行了(gradlew processDebugManifest --stacktrace) 这个命令查看细节,也并未解决。

2.我想起另一个项目也是引用了这个依赖为什么就没报错呢?难道版本不一样?我去主项目里面看了下版本一样都是有这个属性

<queries>

        <!-- 正式环境 -->
        <package android:name="com.eg.android.AlipayGphone" />
        <!-- &lt;!&ndash; 沙箱环境 &ndash;&gt; -->
        <!-- <package android:name="com.eg.android.AlipayGphoneRC" /> -->
        <package android:name="hk.alipay.wallet" />
</queries>

所以排除了版本导致的问题。

3. 于是网上搜了一下问题:

看到了如下标题

4.1.3编译不通过,提示Missing 'package' key attribute on element package #26

这个问题的链接:https://github.com/gzu-liyujiang/Android_CN_OAID/issues/26

其中有这个描述:

 到这里答案就清楚了了,我去看了gradle版本 还是3.2.0

 

 于是我改成如下:

classpath "com.android.tools.build:gradle:4.0.0"
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip

这问题就就修复了。

总结:起始一般不会考虑到这个问题是由gradle版本引起导致的。而且这个问题我记得以前遇到类似的忘了,但是再次遇到这类问题有会多一种解决思路。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值