2015-10-11 12 views
5

私はapi 16以下のchromeカスタムタブを使用したいと思います。私のアプリはMin SDKバージョン10(GingerBread)までサポートしています。私はbuild.gradleapi 16以下のchromeカスタムタブの使い方は?

でcustomtabs依存性を宣言するとき、それは次のエラーを与える:

Error:Execution failed for task ':app:processDebugManifest'. Manifest merger failed : uses-sdk:minSdkVersion 10 cannot be smaller than version 15 declared in library [com.android.support:customtabs:23.0.1] Suggestion: use tools:overrideLibrary="android.support.customtabs" to force usage

どのように私は、デフォルトのブラウザでAPIの16を下回るとcustomtabsとAPI 16上記のSDKを使用してデバイスをサポートするためのメカニズムを実装することができます。

答えて

8

ツール:overrideLibraryマーカー(see here

最低限の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> 
+0

クロームカスタムタブのpakcage名前がある:アンドロイド。 support.customtabs –

+0

あなたの質問に関連するthdkバージョン、アプリケーションがアンドロイドバージョン10〜15で動作するとクラッシュする...アンドレバンからの提案で実行時にチェックする必要があります – aorlando

4

エラーで説明したように、tools:overrideLibraryマーカーを使用して、ライブラリからminSdkバージョンを上書きできます。

ランタイム時に例外を避けるために、ライブラリを呼び出す前に、コードにSDK_INT>ICE_CREAM_SANDWICH_MR1を必ずチェックしてください。

カスタムタブをサポートしていないシステムを使用している場合は、通常のACTION_VIEWインテントを起動してください。