如何在Android Studio中忽略库的minSdkVersion?

use*_*799 10 android android-studio android-gradle-plugin android-min-sdk

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

我明白了:

BUILD_FAILED - Manifest merger failed : uses-sdk:minSdkVersion 10 cannot be smaller than version 11 declared in library.
Run Code Online (Sandbox Code Playgroud)

如何忽略库的minSdkVersion?

gio*_*gio 23

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

要么

找到另一个支持API 10的库

更新:

要么

使用ManifestMerger的力量.来自官方网站.

段落标记

工具:overrideLibrary标记

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

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

<uses-sdk android:targetSdkVersion="14" android:minSdkVersion="2"
      tools:overrideLibrary="com.example.lib1, com.example.lib2"/>
Run Code Online (Sandbox Code Playgroud)

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

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib1">
    <uses-sdk android:minSdkVersion="4" />
</manifest>
Run Code Online (Sandbox Code Playgroud)

  • 查看我的更新.你需要将你的项目清单文件`tools:overrideLibrary ="your.library"`添加到`uses-sdk`中 (5认同)

beh*_*rad 7

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

<uses-sdk tools:overrideLibrary="com.example.android" />
Run Code Online (Sandbox Code Playgroud)

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

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

//your code here
}
Run Code Online (Sandbox Code Playgroud)