Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in lib

本文介绍了解决OAID SDK集成导致的最小SDK版本冲突问题的方法。通过在AndroidManifest.xml中加入特定配置,解决了第三方库要求的minSdkVersion高于项目设置的问题,并提供了运行时版本检查的建议。

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

问题起因:原来的app

minSdkVersion 16,如图:

接入oaid_sdk_1.0.23.aar后编译不通过,提示:

Manifest merger failed : uses-sdk:minSdkVersion 16 cannot be smaller than version 21 declared in library [:oaid_sdk_1.0.23:] E:\Android\androidCache\.gradle\caches\transforms-2\files-2.1\56300240547bb0708ea484d8691618a6\oaid_sdk_1.0.23\AndroidManifest.xml as the library might be using APIs not available in 16
    Suggestion: use a compatible library with a minSdk of at most 16,
        or increase this project's minSdk version to at least 21,
        or use tools:overrideLibrary="com.bun.miitmdid" to force usage (may lead to runtime failures)
如图:

解决方案

打开AndroidManifest.xml文件,加入如下两行代码

根目录:
xmlns:tools="http://schemas.android.com/tools"

根目录下方

<uses-sdk tools:overrideLibrary="com.bun.miitmdid"/>

(注意:overrideLibrary后面不能随意加,报错点提示什么就应该填什么,比如我的是:com.bun.miitmdid,如果有多个,它们之间用逗号隔开)

这样就OK了,我手头上没有21以下的手机,无法测试是否会出现异常,为了防止异常,在调用相对应的的aar方法时最好做个版本判断,比如:我的是因为导入的oaid_sdk_1.0.23.aar要求最低版本是21,所以我在调用oaid方法时做个版本判断,如图所示:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值