在Android项目中编译报错:
Process: com.discovery.ocrserver, PID: 9769
java.lang.NoSuchFieldError: No field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar:classes2.dex)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
说该类AllowAllHostnameVerifier 没有INSTANCE
但是我引入的jar包:httpclient-4.5.2 里面AllowAllHostnameVerifier 是有 INSTANCE;最后发现是由于我调用AllowAllHostnameVerifier这个类的时候就自动调用Android API26中的AllowAllHostnameVerifier了,这是怎么回事?jar包和api里面都有 为什么会只调用api里面的? 需要怎么改?谢谢大神们
Process: com.discovery.ocrserver, PID: 9769
java.lang.NoSuchFieldError: No field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar:classes2.dex)
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:144)
说该类AllowAllHostnameVerifier 没有INSTANCE
但是我引入的jar包:httpclient-4.5.2 里面AllowAllHostnameVerifier 是有 INSTANCE;最后发现是由于我调用AllowAllHostnameVerifier这个类的时候就自动调用Android API26中的AllowAllHostnameVerifier了,这是怎么回事?jar包和api里面都有 为什么会只调用api里面的? 需要怎么改?谢谢大神们
解决方案 »
- WifiManager.startScanActive()没有定义?(Android Wifi Scan的间隔可以控制吗)
- android下的程序自动重启代码
- 关于在service中实例化socket问题
- 求助,如何获得Google Map API key?
- 模拟器STOPPED UNEXPECTEDLY
- android 应用的图标如何实现程序动态改变?
- 400多套安卓源码,Android +4高级编程第三版及源码,云盘下载
- android 高德地图 绘制行驶轨迹
- 【求助】安卓手机开机向导无法跳过
- Android 同一个button可以设置一个触摸监听事件和一个点击监听事件吗??
- delphi XE7 手机蓝牙例子程序 蓝牙模块接收到的全部是00
- 安卓7.0关于libdiag.so库的问题
... useLibrary 'org.apache.http.legacy'
}
然而并不行....还是优先使用framwork.jar里面的类 不知道要怎么解决
使用httpclient库中的一个类在android的framework.jar中也同样存在,并且先使用了framework.jar中的类导致的问题 我使用了一个第三方ocr库,这个库使用了httpclient-4.5.2.jar中的org/apache/http/conn/ssl/AllowAllHostnameVerifier类,但是这个类在android的framework中存在,所以运行时会先运行framework中的AllowAllHostnameVerifier类。但是framework中的AllowAllHostnameVerifier类和httpclient-4.5.2.jar中的AllowAllHostnameVerifier类内容有差别,因此,报了如下错误:java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar:classes2.dex)问题是,我又不能改我使用的第三方ocr库的代码,所以遇到像这种必须使用httpclient-4.5.2.jar中的某个类的某个方法,但是这个类在framework中有,但是使用到的相关方法却没有的情况,大家是如何解决的呢?谢谢
这个问题应该是无解了,总不能重写classloader吧。