Переопределить maxSdkVersion, используемый библиотекой - PullRequest
0 голосов
/ 10 февраля 2019

Вот сценарий.Мое приложение (A) использует библиотеку (B).

Мое приложение (A) использует разрешение READ_PHONE_STATE, и оно объявлено в manifest.xml как

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

В то время как библиотека (B) также использует то же разрешение READ_PHONE_STATE, но с maxSdkVersion установлено значение22.

<uses-permission
    android:name="android.permission.READ_PHONE_STATE"
    android:maxSdkVersion="22"/>

Итак, теперь проблема в том, когда приложение собрано и в финальном _merged_manifest_ у меня установлено maxSdkVersion = "22" , и из-за этого мое текущее устройство, котороеnougat не может запросить данное разрешение.

В настоящее время я нашел решение переопределить это значение в моем приложении (A) manifest.xml

<uses-permission
    tools:replace="android:maxSdkVersion"
    android:name="android.permission.READ_PHONE_STATE"
    android:maxSdkVersion="28"/>

Но для этого требуется, чтобы яupdate maxSdkVersion каждый раз, когда я обновляю версию sdk в своем приложении (A).

Так что мой вопрос

  1. Есть ли способ игнорировать maxSdkVersion, установленныйбиблиотека (B) с использованием некоторого пространства имен в моем файле manifest.xml, подобном инструментам: игнорировать
  2. Установить maxSdkVersion на последний sdkVersion в build.gradle автоматически, не изменяя его вручную

1 Ответ

0 голосов
/ 06 августа 2019

Используйте атрибут tools:remove по своему усмотрению AndroidManifest.xml:

<uses-permission
    android:name="android.permission.READ_PHONE_STATE"
    tools:remove="android:maxSdkVersion"/>
...