今天尝试使用ksoap2-android编写一个在Android手机上访问WebService读取天气信息的Demo,写好以后编译通过,在Android虚拟机上测试。
这时发生一个奇怪的异常,程序还没运行起来就报告一个错误:java.lang.NoClassDefFoundError: org.ksoap2.transport.HttpTransportSE
原来,仅在项目的Build Path中添加对ksoap2-android-assembly-2.6.5-jar-with-dependencies.jar包的引用是不够的,还必须将该包加入Source Folder。
我的解决办法是,在项目根目录下建立一个lib目录,将ksoap2-android.jar复制到lib目录中,设置项目Build Path,在Libraries页签中添加ksoap2-android.jar,在Source页签点击Add Folder按钮,将lib目录勾选上。
再次测试运行,不再出现异常。同时可以发现在bin目录下生成的*.apk文件增大了很多。