记一次莫名其妙的报错 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.(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.(SourceFile:61)     
at com.nxztsckj.nkygq.activity.MapActivity.(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中建一个文件,名字自己取,内容如下




    


2.在AndroidManifest.xml

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

3.在

application包裹内加上

android {
    useLibrary 'org.apache.http.legacy'
}

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

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

你可能感兴趣的:(安卓原生)