5

API 16 以下の chrome カスタム タブを使用したいです。私のアプリは、10 (GingerBread) までの最小 SDK バージョンをサポートしています。build.gradle で customtabs 依存関係を宣言すると

次のエラーが発生します。

エラー: タスク ':app:processDebugManifest' の実行に失敗しました。マニフェストのマージに失敗しました: uses-sdk:minSdkVersion 10 は、ライブラリで宣言されたバージョン 15 より小さくすることはできません [com.android.support:customtabs:23.0.1] 提案: tools:overrideLibrary="android.support.customtabs" を使用して使用を強制します

API 16 未満の SDK をデフォルトのブラウザで使用し、API 16 を超えて customtabs を使用してデバイスをサポートするメカニズムを実装するにはどうすればよいですか。

4

2 に答える 2

9

tools:overrideLibraryマーカー (こちらを参照)

最小 SDK バージョンがそのアプリケーションの最小 SDK バージョンよりも新しいライブラリのインポートをオーバーライドするために uses-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 に答える