Волейбол в предпросмотре разработчика Android M: org.apache.http не может быть разрешен

Я тестирую HurlStack от Volley в Android M Developer Preview.

После того, как я сменил compileSdkVersion с 22 на 'android-MNC' , все классы из org.apache.http не скомпилированы:

 import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.ProtocolVersion; import org.apache.http.StatusLine; import org.apache.http.entity.BasicHttpEntity; import org.apache.http.message.BasicHeader; import org.apache.http.message.BasicHttpResponse; import org.apache.http.message.BasicStatusLine; 

Как я могу изменить свой код для решения этой проблемы?

Я знаю, что есть некоторые изменения, связанные с HTTP-клиентом Apache, но он по-прежнему не работает, когда я useLibrary 'org.apache.http.legacy' шаги, чтобы добавить useLibrary 'org.apache.http.legacy' в gradle.

Ссылка: HurlStack.java AOSP

Изменения поведения: удаление HTTP-клиента Apache

В официальном документе «Изменения поведения» говорится, что HTTP-клиент Apache удален в Android M – не устарел, а удален . Лично я настоятельно рекомендую переключиться на OkHttp, который фактически используется как движок HttpURLConnection с KitKat, используя зависимость, вы получаете все свежие положительные эффекты от Square team напрямую.

Вы можете игнорировать эти предупреждения, потому что Volley по-прежнему компилируется с использованием API 22: https://github.com/mcxiaoke/android-volley/blob/master/gradle.properties

Добавьте их в конфигурацию proguard: -dontwarn org.apache.http. ** -dontwarn com.android.volley.toolbox. **

Помимо использования okHttp, резервное копирование заключается в использовании устаревшего apache httpclient, как это предлагает Google. См. Мой ответ здесь, чтобы заставить его работать.

Как использовать устаревший HTTP-клиент Apache на Android Marshmallow?

Если, как и я, единственная причина, по которой вы включали HttpClient, – это то, что вы тестировали коды ответов HTTP:

 if (error.networkResponse.statusCode == HttpStatus.SC_UNAUTHORIZED) {} 

То простое исправление – это просто использовать версию констант, которые находятся в классе HttpURLConnection:

 if (error.networkResponse.statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {} 
Intereting Posts
Android edittext Исправлено: «Android: обнаружение фокуса / нажатый цвет» Изменение стиля изображения Android для имитации нажатия кнопки Android 4.4.2 и мягкая клавиатура. Возможноменменю? «Невыполненный метод WebView onKeyDown, вызванный из», произошел Is getSimCountryIso возвращает 3 буквы или 2 буквы ISO-код Как реализовать getfilter () с пользовательским адаптером, который расширяет базовый адаптер Данные метаданных об ошибках Google Play Services v13 в AndroidManifest Как изменить цвет кнопки и паузы в течение нескольких секунд при нажатии? Как создать тень для кнопки Android – Proguard с httpcore и httpmime с помощью Android Studio и Gradle Почему сжатие PNG намного медленнее, чем JPEG на Android? Android: Как сделать клавиатуру всегда видимой? Отключение ссылок WebView работает на эмуляторе, но нет на устройстве Как увеличить масштаб MapView, поэтому он всегда включает в себя два геоинтеграции? Android для цикла и задержки не синхронный