Failed resolution of: Lorg/apache/hc/core5/http/message/BasicNameValuePair;

这是我引用的库文件

implementation ("com.esri.arcgisruntime:arcgis-android:100.15.3")

使用ArcGIS绘制天地图报错如下:

Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/hc/core5/http/message/BasicNameValuePair;

查询资料得知是Android 9以后不支持 http库并删除掉该库,Google官方推荐使用HttpURLConnection,但是ArcGIS是多平台开发,还是引用了Http,导致找不到该库文件

以下是常规Groovy构建build.gradle文件

groovy 复制代码
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.client5:httpclient5:5.3'
}

由于我使用的是kotlin构建项目

所以build.gradle.kts修改如下

kotlin 复制代码
android {
   defaultConfig {
       // 1.加入这句话
       useLibrary("org.apache.http.legacy")
   }

// 2.加入这句话
    packagingOptions(Action {
        excludes.add("META-INF/LGPL2.1")
        excludes.add("META-INF/LICENSE")
        excludes.add ("META-INF/NOTICE")
        excludes.add("META-INF/DEPENDENCIES")
        excludes.add("META-INF/LICENSE.txt")
        excludes.add("META-INF/NOTICE.txt")
    })
}

dependencies {
   //3.加入这句话
   api ("org.apache.httpcomponents.client5:httpclient5:5.3")
}
相关推荐
Jony_4 小时前
高可用移动网络连接
网络协议
chilix9 小时前
Linux 跨网段路由转发配置
网络协议
gihigo19982 天前
基于TCP协议实现视频采集与通信
网络协议·tcp/ip·音视频
古译汉书2 天前
【IoT死磕系列】Day 7:只传8字节怎么控机械臂?学习工业控制 CANopen 的“对象字典”(附企业级源码)
数据结构·stm32·物联网·http
白太岁2 天前
通信:(5) 电路交换、报文交换与分组交换
运维·服务器·网络·网络协议
EasyGBS2 天前
国标安全升级:GB28181平台EasyGBS支持GB35114协议的应用场景与核心优势
网络协议·安全·gb28181·gb35114
凯酱2 天前
Windows防火墙入站规则IP白名单
windows·网络协议·tcp/ip
james的分享2 天前
大数据领域核心 SQL 优化框架Apache Calcite介绍
大数据·sql·apache·calcite
稻草猫.2 天前
TCP与UDP:传输层协议深度解析
笔记·后端·网络协议
莫寒清2 天前
Apache Tika
java·人工智能·spring·apache·知识图谱