Как использовать устаревший HTTP-клиент Apache на Android Marshmallow?
На Android Marshmallow Google полностью убрал поддержку HTTP-клиента Apache (ссылкаВот) потому что он не имеет хорошей производительности по сравнению с альтернативами.
Это также может быть причиной падения многих приложений на 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, и мы не хотим сюрпризов в форма аварий.
Вот скриншот:
ВопросПочему это происходит? Я правильно использовал это?
РЕДАКТИРОВАТЬ: сообщил об этой проблеме здесь: