Как использовать пользовательские вкладки Chrome ниже API 16?

Я хочу использовать пользовательские вкладки Chrome ниже API 16. Мое приложение поддерживает минимальную версию SDK до 10 (GingerBread). Когда я объявляю зависимость customtabs в build.gradle

выдает следующую ошибку:

Ошибка: не удалось выполнить задачу ':app:processDebugManifest'. Ошибка слияния манифеста: Use-sdk:minSdkVersion 10 не может быть меньше версии 15, объявленной в библиотеке [com.android.support:customtabs:23.0.1]. Предложение: используйте tools:overrideLibrary="android.support.customtabs" для принудительного использования

Как я могу реализовать механизм поддержки устройств, использующих SDK ниже API 16 с браузером по умолчанию и выше API 16 с customtabs.


person Anudeep Samaiya    schedule 11.10.2015    source источник


Ответы (2)


Маркер 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>
person Anudeep Samaiya    schedule 11.10.2015
comment
имя пакета для пользовательских вкладок Chrome: android.support.customtabs - person Amir Hossein Ghasemi; 08.03.2017
comment
связанная версия sdk в вашем вопросе, когда ваше приложение запускается на устройствах с версией Android от 10 до 15, оно падает ... вы должны проверить во время выполнения, как это было предложено от andreban - person aorlando; 15.09.2017

Как указано в ошибке, вы можете переопределить версию minSdk из библиотеки с помощью tools:overrideLibrary маркер.

Обязательно проверьте SDK_INT > ICE_CREAM_SANDWICH_MR1 в своем коде перед вызовами библиотеки, чтобы избежать исключений во время выполнения.

При использовании системы, которая не поддерживает настраиваемые вкладки, просто активируйте обычное намерение ACTION_VIEW.

person andreban    schedule 11.10.2015