【问题标题】:Class 'org.apache.http.message.BufferedHeader' does not implement interface 'org.apache.http.NameValuePair'类 'org.apache.http.message.BufferedHeader' 没有实现接口 'org.apache.http.NameValuePair'
【发布时间】:2019-09-30 15:07:44
【问题描述】:

首先,我在 stackoverflow 中使用了所有解决方案,但在发布 apk 时出现此错误。谁能告诉我如何解决这个问题?我在从谷歌获得时间时遇到了这个问题。

dateStr = response.getFirstHeader("Date").getValue();

我还在清单上添加了 Volly Lib。该方法在我的其他应用程序中有效,但我不知道为什么它会在特定应用程序中发生。

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

例外:

Caused by: java.lang.IncompatibleClassChangeError: Class 'org.apache.http.message.BufferedHeader' does not implement interface 'org.apache.http.NameValuePair' in call to 'java.lang.String org.apache.http.NameValuePair.getValue()' (declaration of 'package.MainActivity$GoogleTime' appears in /data/app/packagename-666QBWSxEt_A-vBNzTMWfA==/base.apk)

【问题讨论】:

标签: java android apache


【解决方案1】:

观察到org.apache.http.message.BufferedHeader 是接口org.apache.http.NameValuePair 的合法实现,您在类路径上有重复的类- 特别注意NameValuePair 的两个不同出现。

错误信息省略了类加载器或home jar文件:认为它是:

类 'org.apache.http.message.BufferedHeader' 没有实现来自 jar X 的接口 'org.apache.http.NameValuePair',但它实现了来自 jar Y 的同名接口.

确定您在描述为“更改一些内部事物并更新我的应用程序”期间所做的事情,它可能会指向您。如果您没有引入其他依赖项,则类加载顺序可能已更改。

如果这没有帮助:查看运行时类路径并识别引入相同类文件的 jar。消除重复。

【讨论】:

    【解决方案2】:

    您是否曾尝试将其添加到您的成绩文件中

    useLibrary 'org.apache.http.legacy'
    

    喜欢这个

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

    【讨论】:

    • 嗯,你也检查过这个答案吗? stackoverflow.com/questions/56665050/…
    • 一切都很好。我只是在应用程序中更改一小行并更新我的应用程序。当我从 Play 商店下载我的应用程序时,它崩溃了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    • 2021-01-14
    相关资源
    最近更新 更多