Получение ошибки: класс 'org. apache .http.message.BufferedHeader' не реализует интерфейс 'org. apache .http.NameValuePair' - PullRequest
0 голосов
/ 15 апреля 2020

Мое приложение работало нормально. Сегодня я изменил некоторые внутренние вещи и обновил свое приложение. В выпуске Apk я получаю эту ошибку:

Класс 'org. apache .http.message.BufferedHeader' не реализует интерфейс 'org. apache .http.NameValuePair'

Мое приложение работало нормально в предыдущих обновлениях. Я не понимаю, в чем проблема. Я использую Pro-Guard, а также правильно добавил правила. В чем основная причина этой ошибки. Я проверил все ответы этой конкретной ошибки на stackoverflow.

Также добавлено это в build.gradle:

android {
        useLibrary 'org.apache.http.legacy'
    }

В манифесте:

 <uses-library
        android:name="org.apache.http.legacy"
        android:required="false" />

Proguard:

-keep class org.apache.http.** { *; }
-keep class org.apache.** { *; }
-dontwarn org.apache.**
-dontwarn org.apache.http.**
-dontwarn org.apache.commons.**
-keep class com.google.api.** { *; }
-keepattributes Annotation

1 Ответ

1 голос
/ 15 апреля 2020

Предполагая, что org.apache.http.message.BufferedHeader является допустимой реализацией интерфейса org.apache.http.NameValuePair, у вас есть повторяющиеся классы на пути к классам - обратите особое внимание на два различных вхождения NameValuePair.

В сообщении об ошибке не указан файл загрузчика классов или домашний файл:

Класс 'org. apache .http.message.BufferedHeader' не реализует интерфейс ' org. apache .http.NameValuePair ' от jar X, в то время как он реализует интерфейс с тем же именем от jar Y .

Определите, что вы делали за это время вы описываете как «изменить некоторые внутренние вещи и обновить мое приложение», это может указать вам на это. Если вы не ввели другую зависимость, порядок загрузки классов мог измениться.

Если это не поможет: просмотрите путь к классу времени выполнения и найдите файлы jar, в которых представлены те же файлы классов. Устранить дублирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...