我的应用程序运行良好。今天我更改了一些内部内容并更新了我的应用程序。在发布Apk我得到这个错误:
类"org.apache.http.message.BufferedHeader"未实现接口"org.apache.http.NameValuePair">
我的应用程序在以前的更新中运行良好。我不明白问题出在哪里。我使用的是职业后卫,也适当地增加了规则。这个错误的主要原因是什么。我已经在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
假设org.apache.http.message.BufferedHeader
是接口org.apache.http.NameValuePair
的合法实现,那么类路径上有重复的类-特别要注意NameValuePair
的两个不同出现。
错误消息省略了类加载器或home-jar文件:将其视为:
Class'org.apache.http.message.BufferedHeader'没有实现来自jar X的接口'org.apache.http.NameValuePair',而它实现了来自jar Y的同名接口。
确定您在描述为"更改一些内部内容并更新我的应用程序"期间所做的事情,它可能会为您指明方向。如果您没有引入另一个依赖项,则类加载顺序可能已经更改。
如果这没有帮助:查看运行时类路径,并确定引入相同类文件的jar。消除重复。