Использует тег библиотеки в AndroidManifest.xml против useLibrary в Gradle - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу создать проект, использующий HTTP-клиент Apache, для Android P. Насколько я понимаю, есть 2 способа сделать это:

Сначала через AndroidManifest.xml:

 <application
     ...
     <uses-library
         android:name="org.apache.http.legacy"
         android:required="false" />
 </application>

Второй через build.gradle:

android {
    useLibrary 'org.apache.http.legacy'
}

Эти способы эквивалентны?

Почему команда android.useLibrary в сборке сборок НЕ добавляет тег использованной библиотеки в AndroidManifest.xml?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Добавление этого в AndroidManifest.xml должно уведомить Android во время выполнения, что существуют следующие классы:

<uses-library
      android:name="org.apache.http.legacy"
      android:required="false" />

Ссылка: define_requirement_for_apache_http_legacy_library

Объявление build.gradle обеспечивает доступность библиотеки во время компиляции.

useLibrary 'org.apache.http.legacy'

Ссылка: поведение-apache-http-клиент

0 голосов
/ 09 апреля 2019

Расширение того, что прокомментировал CommonsWare.

Используйте зависимость gradle для использования HTTP-клиента Apache, не изменяйте AndroidManifest.xml.

Измените build.gradle как

dependencies {
    implementation 'org.apache.httpcomponents:httpclient-android:4.3.5.1'
}
...