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,请各位帮忙看看,还有哪些地方需要配置的?
2 个解决方案
#1
我加jar包的时候是没有你说的第二步,直接加到libs下,在看下Order and Export勾选了没,build就可以了。
还报错的话就是看下包是否冲突,另外你得smack所需求的版本跟你当前环境的版本是否是对应的。
还报错的话就是看下包是否冲突,另外你得smack所需求的版本跟你当前环境的版本是否是对应的。
#2
多谢各位,问题已经解决了,确实不需要另外新建lib库,直接将需要的jar包放到libs目录下,然后再刷新项目,就会自动加载到Android Private Libraries下,不过smack的包很多,我开始是将所有的包都加载了,没想到有个类重复了,在不同的包里都打包了同一个class,因此才会有这个问题,后来只加载了需要的包之后,就OK了
#1
我加jar包的时候是没有你说的第二步,直接加到libs下,在看下Order and Export勾选了没,build就可以了。
还报错的话就是看下包是否冲突,另外你得smack所需求的版本跟你当前环境的版本是否是对应的。
还报错的话就是看下包是否冲突,另外你得smack所需求的版本跟你当前环境的版本是否是对应的。
#2
多谢各位,问题已经解决了,确实不需要另外新建lib库,直接将需要的jar包放到libs目录下,然后再刷新项目,就会自动加载到Android Private Libraries下,不过smack的包很多,我开始是将所有的包都加载了,没想到有个类重复了,在不同的包里都打包了同一个class,因此才会有这个问题,后来只加载了需要的包之后,就OK了