Android java.lang.NoClassDefFoundError:failed resolution of :Lorg/apache/http/ProtocolVersion

问题是突然出现的,因为我走测试的时候没有问题,但是正式的时候就这样了,报错APP发生的样式是直接闪退。问题报错位置大概是Applicition类,因为这里基本是都是初始化第三方地方,

问题形成原因:可能是api过高了,我这里之前是27。因为需要集成一个发布WiFi给硬件使用的第三方sdk改成了28.

重点:API 版本过高造成的。

解决方法:

在Manifest下的application标签 下加入:

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

大概样式:

<application    吧啦吧啦吧啦。。。。。>

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

</application>

如果还不OK:

你会发现app连不上网:

解决方法:  一般出现在android版本9.0以上,好像是android对网络请求出现了限制<httpclient>就这个

首先在res下弄一个叫xml的包创建一个文件,例如:aaa

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

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

之后在manifest里面

<application   

android:networkSecurityConfig="@xml/aaa"

吧啦吧啦吧啦。。。。。>

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

</application>

最后在项目build的android目录里面加上

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

如果如果如果还不好:十有八九用了服务,还可能是前台服务:

解决方法:  这个一般是因为app里面有服务的原因。android 9.0上使用前台服务,需要添加权限

在manifest里面加上这权限

<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

基本是大功告成。

假如还有问题:

现在是考验我们的心里素质了,

首先把电脑调至到桌面,鼠标右击创建一个word文档,其次在里面写入离职证明。最后交由经理。不干了

太欺负人。(开个玩笑嘿嘿)

----致敬不断在bug之路披荆斩浪的我们!!!

   2020最崩溃的一年加油。

 

       

上一篇:iOS:多线程的详细介绍


下一篇:Qt 程序管理员权限的几种方法