ClassNotFoundException: Didn‘t find class “org.apache.http.message.BasicNameValuePair”

476人浏览 / 0人评论 / 添加收藏

背景
在做的一个APP项目,原来是在Android 7(N版本)上运行,一直没有问题

近期,设备升级到Android 10版本,在进行新设备适配时,出现了一系列问题。

其中一个问题,如下:

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/message/BasicNameValuePair;
 

方法一
android {
   defaultConfig {
       // 1.加入这句话
       useLibrary 'org.apache.http.legacy'
   }

   packagingOptions {
       // 2.加入这句话
       exclude 'META-INF/DEPENDENCIES'
       exclude 'META-INF/NOTICE'
       exclude 'META-INF/LICENSE'
       exclude 'META-INF/LICENSE.txt'
       exclude 'META-INF/NOTICE.txt'
   }
}

dependencies {
   //3.加入这句话
   api 'org.apache.httpcomponents:httpclient:4.4.1'
}
 

方法二
   <application
       ...
       >

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

   </application>
于是,按照方法二修改了清单文件,解决了这个问题。
 

全部评论