场景:一个Android项目,ProjAndroID引用一个Java项目say(HelperProj).
在HelperProj中,我尝试通过实例化其管理器来使用httpconnection池.
PoolinghttpClIEntConnectionManager cm =新的PoolinghttpClIEntConnectionManager();
我遇到了Apache example,能够将其作为独立程序实现而没有任何小故障.
但是对于androID系统,它首先给出了NoClassDefFoundError错误,当我向AndroID项目中添加httpclIEnt-4.3.1.jar和httpcore-4.3.jar时就解决了.
造成原因:java.lang.NoSuchFIEldError:org.apache.http.message.BasiclineFormatter.INSTANCE
我的结论:
上面的字段应该是httpcore-4.3.jar中的available,因为我以独立身份运行代码时没有收到任何错误.因此,我搜索并发现androID已经提供了BasicLineFormatter class,该字段不可用,可能在运行时类被引用.
please correct me in case the above is wrong.
救命:-
因此,请有人指导我如何解决此资源冲突,并使用jar中可用的类,而不是androID API中可用的类.
解决方法:
So someone please guIDe me as how may I resolve this resource conflict and use the class available in jar instead of the one available with androID API.
这不是直接可能的.您无法控制类路径,因此,固件加载的类始终优先.
欢迎您尝试使用utilities like jarjar
将第三方代码移到单独的程序包中.
或者,您可以查看是否有人已经为您完成了这项工作,as with htpclientandroid.
或者,也可以为您的问题提供其他解决方案,而不涉及替换AndroID提供的类.
总结以上是内存溢出为你收集整理的java-如何使用添加的jar中可用的类覆盖Android Api类?全部内容,希望文章能够帮你解决java-如何使用添加的jar中可用的类覆盖Android Api类?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)