Передумови
На Android Marshmallow Google повністю вилучив підтримку клієнта Apache HTTP (посилання тут ), оскільки він не має ефективної роботи порівняно з альтернативними версіями.
Це також може бути причиною того, що на 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"
}
Коли я спробував, він скомпілювався нормально (помилок не відображається, і я міг запустити додаток proof-of-concept, оскільки в ньому немає спеціального коду), але коли я намагався використовувати деякі класи, я знаю, що є частиною старого API (наприклад, класу "HttpClient"), я бачу, що це не дозволяє мені цього робити.
Я знаю, що не рекомендується використовувати це рішення, але ми повинні мати додаток готовим працювати там принаймні тимчасово, поки ми не попрацюємо на 100% над усіма речами, які повинні змінитися для Android Marshmallow, і ми не хочемо сюрпризів у форма збоїв.
Ось знімок екрана:
Питання
Чому це відбувається? Чи правильно я ним користувався?
EDIT: повідомляв про цю проблему тут: