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