android 应用引用第三方jar包运行总是报错

linyu0716 2015-01-17 05:10:56
我要写个消息推送的应用,引用了开源的smack包,但始终无法将这些jar包打进apk包里,在运行时总是报下面的错误:
java.lang.NoClassDefFoundError: org.jivesoftware.smack.ConnectionConfiguration

我也在网上查了,按照大家给的方法去做:
1.在工程的目录下新建了一个libs的目录,跟src目录同一级,然后将smack的jar包都复制到这个目录下
2.Build Path -> Add Libraries -> User Library -> User Libraries -> New,我新建工程里的是smacklib,并勾选了System library,点击OK
3.点击Add Jars,将libs目录下的jar包都加到smacklib下
按上述步骤做了后,debug时仍然报上面的错误,于是我又点击了Build Path -> Configure Build Path,在Order and Export页签下将smacklib移到最顶上的位置,我前后试了勾选和不勾选,上面的报错始终没解决
我的配置截图如下:




我还用WinRar把打包好的apk文件打开看了,根本没有我引用的这些包,这些包一直都打不进去,如果是将lib设置User as Source Folder,则运行时直接报编译错误:Conversion to Dalvik format failed with error 1,请各位帮忙看看,还有哪些地方需要配置的?
...全文
219 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
linyu0716 2015-01-22
  • 打赏
  • 举报
回复
多谢各位,问题已经解决了,确实不需要另外新建lib库,直接将需要的jar包放到libs目录下,然后再刷新项目,就会自动加载到Android Private Libraries下,不过smack的包很多,我开始是将所有的包都加载了,没想到有个类重复了,在不同的包里都打包了同一个class,因此才会有这个问题,后来只加载了需要的包之后,就OK了
xiaoxiage_ 2015-01-17
  • 打赏
  • 举报
回复
我加jar包的时候是没有你说的第二步,直接加到libs下,在看下Order and Export勾选了没,build就可以了。 还报错的话就是看下包是否冲突,另外你得smack所需求的版本跟你当前环境的版本是否是对应的。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧