17

在我的项目中 minSdkVersion = 10,在库中是 11。

我得到:

BUILD_FAILED - Manifest merger failed : uses-sdk:minSdkVersion 10 cannot be smaller than version 11 declared in library.

如何忽略库的 minSdkVersion?

4

2 回答 2

34

您需要将项目更改为库的值11,因为该属性意味着该库被设计为至少在 API 11 的设备上使用。它根本不支持 API 10,因此您不能根据要求和最小的 SDK 使用它你的项目。查看有关<uses-sdk> 的更多详细信息

或者

寻找另一个支持 API 10 的库

更新:

或者

使用 ManifestMerger 的力量。来自官

段落标记

工具:覆盖库标记

一个特殊标记,只能与 uses-sdk 声明一起使用,以覆盖导入最低 SDK 版本比该应用程序的最低 SDK 版本更新的库。如果没有这样的标记,清单合并将失败。该标记将允许用户选择可以导入哪些库而忽略最低 SDK 版本。

例如,在主要的 android 清单中:

<uses-sdk android:targetSdkVersion="14" android:minSdkVersion="2"
      tools:overrideLibrary="com.example.lib1, com.example.lib2"/>

将允许导入具有以下清单的库而不会出错:

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib1">
    <uses-sdk android:minSdkVersion="4" />
</manifest>
于 2014-12-06T21:22:07.267 回答
5

您必须在清单文件中声明如下

<uses-sdk tools:overrideLibrary="com.example.android" />

并且不要忘记安全使用库,例如​​:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {

//your code here
}
于 2021-01-09T12:18:29.587 回答