5

我想在 api 16 下使用 chrome 自定义选项卡。我的应用支持 Min SDK 版本高达 10(GingerBread)。当我在 build.gradle 中声明 customtabs 依赖项时

它给出了以下错误:

错误:任务“:app:processDebugManifest”执行失败。清单合并失败:uses-sdk:minSdkVersion 10 不能小于库 [com.android.support:customtabs:23.0.1] 中声明的版本 15 建议:使用 tools:overrideLibrary="android.support.customtabs" 强制使用

如何实现一种机制来支持使用低于 api 16 和默认浏览器的 SDK 和高于 api 16 和 customtabs 的设备。

4

2 回答 2

9

tools:overrideLibrary标记(见这里

一个特殊标记,只能与 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>
于 2015-10-11T20:40:53.050 回答
4

如错误中所述,您可以使用tools:overrideLibrary标记覆盖库中的 minSdk 版本。

在调用库之前,请务必检查代码上的SDK_INT > ICE_CREAM_SANDWICH_MR1,以避免运行时出现异常。

当使用不支持自定义选项卡的系统时,只需触发一个普通的 ACTION_VIEW 意图。

于 2015-10-11T10:21:26.653 回答