`

Android导入common-codec.jar包ClassNotFound错误

 
阅读更多

项目中要用集成支付宝支付功能。去down了一下支付宝的开发文档还比较全。但在集成md5加密时报org.apache.commons.codec.digest.DigestUtils ClassNotFoundException.一开始以为是libs引用错误。但确认第三方jar引用正确,觉得很纳闷(关于第三方jar引用可以去百度一下复制jar至libs文件目录下)。没办法google看看。最后看了一个帖子说common-codec.jar的包名与android系统的报名有冲突。楼主看了一下android.jar的目录结构发现确实有一个同名的包叫org.apache.commons(估计是android阉割的结果)如下图:

而org.apache.commons.codec.digest.DigestUtils也在commons包目录下这个造成了冲突。发现问题楼主乐了。接办法很简单,去apache官网将codec的源码下下来改了个包名(楼主改为org.aapache.commons)重新编译一个jar包(叫acommon-codec.jar)。

Android导入common-codec.jar包ClassNotFound错误

本以为很顺利就能解决问题了。结果新的jar包还是包classnotfoundexception.楼主以为包名换的不够彻底有换了几个名字。结果还是不停的错误。纠结了半天忽然发现原来是java compiler版本问题。原来上面的jar包我是用的1.7版原项目是用的1.6的低版本引用高版本的jar就会报这个classnotfoundexception。改为1.6在编译终于大功告成。

Android导入common-codec.jar包ClassNotFound错误

最后总结一下引用第三方jar的出现classnotfound问题解决思路

1.看有没有引用该报,android项目要copy到libs目录下而且要勾选privatelib

Android导入common-codec.jar包ClassNotFound错误

2.查看包名是否跟系统包名有冲突。(常见引用了appache的包)

3.对比compiler版本。项目工程的compiler版本要>jar的compiler版本。

4.检查是否引用的不同版本相同项目的jar包(常见同时appache的log4j几个版本导致冲突)

 

转载自:http://blog.sina.com.cn/s/blog_783ede030101dxxf.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics