Lý lịch
Trên Android Marshmallow, Google đã loại bỏ hoàn toàn sự hỗ trợ của Apache HTTP client (liên kết tại đây ) vì nó không có hiệu suất tốt so với các lựa chọn thay thế.
Đây cũng có thể là nguyên nhân dẫn đến rất nhiều ứng dụng bị lỗi trên Android Marshmallow.
Vấn đề
Google cho phép bạn vẫn sử dụng API này, không phải là API tích hợp sẵn, bằng cách thêm dòng này vào tệp gradle:
useLibrary 'org.apache.http.legacy'
Vì vậy, đây là những gì tôi đã làm:
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
}
Và:
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"
}
Khi tôi thử nó, nó biên dịch tốt (không có lỗi nào được hiển thị và tôi có thể chạy ứng dụng bằng chứng khái niệm, vì nó không có bất kỳ mã đặc biệt nào), nhưng khi tôi thử sử dụng một số lớp mà tôi biết rằng là một phần của API cũ (như lớp "HttpClient"), tôi thấy rằng nó không cho phép tôi làm như vậy.
Tôi biết không nên sử dụng giải pháp này, nhưng chúng tôi phải có ứng dụng sẵn sàng hoạt động ở đó ít nhất là tạm thời, cho đến khi chúng tôi làm việc 100% trên tất cả những thứ sẽ thay đổi đối với Android Marshmallow và chúng tôi không muốn bất ngờ trong hình thức va chạm.
Đây là ảnh chụp màn hình:
Câu hỏi
Tại sao nó xảy ra? Tôi đã sử dụng nó một cách chính xác?
EDIT: đã báo cáo về vấn đề này ở đây: