Фон
В Android Marshmallow Google полностью удалил поддержку HTTP-клиента Apache (ссылка здесь), потому что это doesn Хорошая производительность по сравнению с альтернативами.
Это также может быть причиной того, что огромное количество приложений разбилось на Android Marshmallow.
Проблема
Google позволяет вам использовать этот API, а не как встроенный в него, добавив эту строку в файл gradle:
useLibrary 'org.apache.http.legacy'
Итак, это то, что я сделал:
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
и
android {
compileSdkVersion 'android-MNC'
buildToolsVersion "23.0.0 rc3"
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.example.user.androidmtest"
minSdkVersion 'MNC'
targetSdkVersion 'MNC'
versionCode 1
versionName "1.0"
}
Когда я это пробовал, он скомпилировался отлично (никаких ошибок не показывалось, и я мог запускать приложение с доказательством концепции, так как у него нет специального кода), но когда я попытался использовать некоторые из классов, которые Я знаю, что это часть старого API (например, класса HttpClient), я вижу, что это не позволяет мне это делать.
Я знаю, что не рекомендуется использовать это решение, но мы должны иметь приложение, готовое работать там хотя бы временно, пока мы не будем работать на 100% на всех вещах, которые должны измениться для Android Marshmallow, и мы не хотим сюрпризы в виде сбоев.
Вот скриншот:
Вопрос
Почему это происходит? Правильно ли я использовал его?
ИЗМЕНИТЬ: сообщите об этом здесь: