记一次莫名其妙的报错 Failed resolution of: Lorg/apache/http/params/BasicHttpParams

2019-04-25 11:11:49 App Version: 1.0.7_7 OS Version: 9_28 Vendor: OPPO Model: PCAM00 CPU ABI: armeabi-v7a
java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/params/BasicHttpParams;     at
com.esri.core.internal.io.handler.c.<clinit>(SourceFile:218)     at com.esri.core.internal.io.handler.c.a(SourceFile:189)
    at com.esri.core.internal.RuntimeHelper.c(SourceFile:104)     at
com.esri.core.internal.RuntimeHelper.initialize(SourceFile:51)     at com.esri.android.map.Layer.<clinit>(SourceFile:61)     
at com.nxztsckj.nkygq.activity.MapActivity.<init>(MapActivity.java:106)     at java.lang.Class.newInstance(Native
Method)     at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:69)     at
android.support.v4.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:43)     at
android.app.Instrumentation.newActivity(Instrumentation.java:1216)     at
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3039)     at
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3289)     at
android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)     at
android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)     at
android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)     at android.app.ActivityThread
$H.handleMessage(ActivityThread.java:2012)     at android.os.Handler.dispatchMessage(Handler.java:106)     at
android.os.Looper.loop(Looper.java:227)     at android.app.ActivityThread.main(ActivityThread.java:7182)     at
java.lang.reflect.Method.invoke(Native Method)     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run
(RuntimeInit.java:575)     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:903) Caused by:
java.lang.ClassNotFoundException: Didn't find class "org.apache.http.params.BasicHttpParams" on path: DexPathList[[zip
file "/data/app/com.nxztsckj.nkygq-FS0hncwWgZWy7z6IreitxA==/base.apk"],nativeLibraryDirectories=
[/data/app/com.nxztsckj.nkygq-FS0hncwWgZWy7z6IreitxA==/lib/arm, /data/app/com.nxztsckj.nkygq-
FS0hncwWgZWy7z6IreitxA==/base.apk!/lib/armeabi-v7a, /system/lib]]     at dalvik.system.BaseDexClassLoader.findClass
(BaseDexClassLoader.java:134)     at java.lang.ClassLoader.loadClass(ClassLoader.java:379)     at
java.lang.ClassLoader.loadClass(ClassLoader.java:312)     ... 22 more

 

以上就是报错信息,经过一番折腾,问题大致锁定为android9.0以上手机均会出现以上问题,问题大致就是找不到 Lorg/apache/http/params/BasicHttpParams这个东西,最后没办法开始度娘,但是答案均令人不满意,最后将将几片文章结合到一起解决了问题,大致的意思就是android9.0以上对httpclient这个做了限制,不让用这种方式去访问

首先需要适配9.0的http请求报错信息

1.xml中建一个文件,名字自己取,内容如下

<?xml version="1.0" encoding="utf-8"?>

<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

2.在AndroidManifest.xml

application中加上
android:networkSecurityConfig="@xml/network_security_config"

3.在

application包裹内加上

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

4.尽量不要用httpclient,多用HttpUrlConnection

5.最根本的做法是使用https进行接口访问,毕竟涉及数据的安全性。当然了,这需要服务器的支持。还有第三方sdk,也需要使用https。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值