这是我引用的库文件
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")
}