Gần đây tôi di chuyển dự án của tôi từ Eclipse sang Android Studio (Tôi chưa hoàn toàn kiểm soát được IDE này). Trong dự án này, tôi có một trình tải lên tệp AsyncTask gửi nhiều phần trên http. Để làm điều này, tôi sử dụng org.apache.httpcomponents. Tôi tạo ra phụ thuộc sau:Android - MultipartEntity và phụ thuộc
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'org.apache.httpcomponents:httpcore:4.4'
compile 'org.apache.httpcomponents:httpmime:4.4'
...
}
Trong mã AsyncTask java của tôi:
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody(...);
builder.addBinaryBody(...);
builder.addBinaryBody(...);
HttpEntity entity = builder.build(); // < throw exception
Ngoại lệ tôi có được lúc khởi động tải lên:
Caused by: java.lang.NoSuchFieldError: org.apache.http.message.BasicHeaderValueFormatter.INSTANCE
at org.apache.http.entity.ContentType.toString(ContentType.java:153)
at org.apache.http.entity.mime.MultipartFormEntity.<init>(MultipartFormEntity.java:52)
at org.apache.http.entity.mime.MultipartEntityBuilder.buildEntity(MultipartEntityBuilder.java:226)
at org.apache.http.entity.mime.MultipartEntityBuilder.build(MultipartEntityBuilder.java:230)
Tôi nghĩ rằng có một xung đột giữa android.jar > httpcomponents
và phụ thuộc org.apache.httpcomponents
nhưng tôi không tìm thấy giải pháp để giải quyết vấn đề của mình.
này giải quyết vấn đề của tôi, cảm ơn bạn rất nhiều! – alex
@soey Cảm ơn câu trả lời đã lưu cho tôi.Working hoàn toàn ổn. –