- 浏览: 7340049 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
错误信息
最近在学Android使用KSOAP2调用现有的Webservice的方法,期间在网上找了很多代码,但是每次在Android模拟器中运行的时候程序都会崩溃,搞得自己都快崩溃了。。。。
查看了一下LogCat中的错误报告,发现是因为java.lang.NoClassDefFoundError导致程序崩溃的:
- ERROR/AndroidRuntime(600): java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
- at webservice.weather.WeatherActivity.getWeather(WeatherActivity.java:104)
- at webservice.weather.WeatherActivity.showWeather(WeatherActivity.java:84)
- at webservice.weather.WeatherActivity.access$0(WeatherActivity.java:80)
- at webservice.weather.WeatherActivity$1.onClick(WeatherActivity.java:75)
- at android.view.View.performClick(View.java:2408)
- at android.view.View$PerformClick.run(View.java:8816)
- at android.os.Handler.handleCallback(Handler.java:587)
- at android.os.Handler.dispatchMessage(Handler.java:92)
- at android.os.Looper.loop(Looper.java:123)
- at android.app.ActivityThread.main(ActivityThread.java:4627)
- at java.lang.reflect.Method.invokeNative(Native Method)
- at java.lang.reflect.Method.invoke(Method.java:521)
- at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
- at dalvik.system.NativeStart.main(Native Method)
解决方法
找了很多资料,最后才发现是jar包的导入有问题。。。。以前开发java程序时导入jar包都是用一下的方法:
工程点击右键->Build Path->Add Libraries->User Library->选择包含需要的jar包的Library(如果没有的话就点击User Libraries新建一个Library,然后再选中)
但是,在Android中这样导入jar包会导致程序在模拟器中运行时抛出java.lang.NoClassDefFoundError异常,在Android中导入jar包的步骤如下:
工程点击右键->Build Path->Add External Archives->选择要导入的jar包
另外还有一个问题就是:Android模拟器访问Tomcat上部署的webservice程序时,不能用localhost或者本机IP,Android默认访问本机地址为10.0.2.2。
原因猜想
对于产生上述NoClassDefFoundError的原因,查看一下工程中的classpath文件就可以找到。如果是利用第一种方法导入的jar包的话,classpath文件中会生成这样一条语句:<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/KSOAP2"/>,这种导入jar包的方法依赖于开发环境eclipse;而如果用第二种方法导入jar包的话,会在classpath中产生如下的语句:
<classpathentry kind="lib" path="D:/JAVATOOLS/ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar"/>,这种导入方式是用的绝对路径,与eclipse开发环境无关,而且以这种方式导入后,jar包的信息会被加到工程class.dex中,进而会被打包到apk中。
我猜想,在运行虚拟机的时候,虚拟机是脱离了eclipse开发环境的,所以第一种依赖于eclipse环境的导入方式会出现上述错误;而第二种导入方式由于不依靠eclipse,将jar包的信息放到了class.dex中,所以运行无误!
发表评论
-
[转]年度最实用50款免费Android应用推荐
2012-11-08 16:39 3377据国外媒体报道,有人说Android应用市场比iPhone应用 ... -
GIS的学习(四十五)【转】Integration of the MBTiles format on Android
2012-10-22 17:13 2945转载自 http:/ ... -
GIS的学习(四十四)osmdroid sdcard检查
2012-10-15 16:12 2339在许多应用中使用到sdcard的检查,在osmdro ... -
GIS的学习(四十三)osmdroid基于几个经典代理类
2012-10-15 16:06 2630在osmdroid中给基于位置的代理类如下: pack ... -
Android中PopupWindow的用法(位置、动画、焦点)
2012-10-12 14:12 11521在Android中有很多级别的Window,不同级别的Wind ... -
【转】Android根据分辨率进行单位转换-(dp,sp转像素px)
2012-10-11 09:18 27133Android系统中,默认的单位是像素(px)。也就是说,在没 ... -
GIS的学习(二十九)Osmdroid 离线地图存放位置的研究和详细分析
2012-09-23 11:49 11540在手机通过osmdroid调用离线地图必须放在 ... -
GIS的学习(二十八)Osmdroid相关的开源项目
2012-09-23 11:31 25429osm 数据格式(openstreet map)与Ro ... -
GIS的学习(二十七)通过geoserver的georss访问第三方地图
2012-09-23 00:34 3601在geoserver中如果想调用第三方地图可以采 ... -
android中使用 定时更新界面定时器Timer的使用
2012-09-22 22:09 25521handler的使用 一、Handler的定义: ... -
【转】Android应用程序的自动更新升级(自身升级、通过tomcat) .
2012-09-16 15:03 7363http://blog.csdn.net/mu0206mu/a ... -
GIS的学习(二十七)OGC 的WCS WFS 及WMS 服务
2012-09-11 22:22 12120http://www.gisall.com/?6678/v ... -
GIS的学习(二十六)geotools 使用 部分代码总结
2012-09-11 22:20 5729前段时间的一个项目 本来用ae完成了种种的 查询,空间分析等等 ... -
GIS的学习(二十五)geoserver wms中的各种操作API详细讲解和使用
2012-09-10 17:42 9709官方geoserver中WMS服务中几种操作的API的详细说明 ... -
GIS的学习(二十四)android异步调用geoserver wms中的地图
2012-09-10 17:38 8165在geoserver的客户端通过wms的GetMap实现 ... -
GIS的学习(二十三)geoserver中CQL和ECQL的使用
2012-09-10 16:29 6633以下引用自官方文档: CQL and ECQL¶ CQ ... -
GIS的学习(二十二)osmdroid中添加縮放控件
2012-09-06 23:09 2787package com.geoserver.osmdroid; ... -
GIS的学习(二十一)在osmdroid 地图中添加marker 并添加事件
2012-09-06 22:27 6625我有 osmdroid,overlayswithf ... -
GIS的学习(二十)基于Geoserver的WFS服务与Openlayers实现地理查询
2012-08-30 18:48 11408基于Geoserver发布的wfs服务,与Openlayers ... -
GIS的学习(十九)Geoserver使用添加,删除,查询地图中的POI
2012-08-30 17:28 10354在geoserver自定义的地图中通过geoserver ...
相关推荐
下面将详细讲解如何在Android中使用KSOAP2来调用Webservice接口进行查询操作。 首先,了解SOAP。SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它允许应用程序通过HTTP协议发送和接收数据,...
本文将详细介绍如何在Android应用中使用KSOAP2来调用WebService。 首先,为了在Android项目中使用KSOAP2,你需要下载并添加对应的jar文件。你可以从Google Code仓库...
总之,在Android中使用KSOAP2调用Web Service涉及了构建SOAP请求、设置参数、发送请求以及解析响应等多个环节。理解并熟练掌握这些步骤对于构建与服务器交互的应用至关重要。通过KSOAP2,开发者可以轻松地将Android...
本文将详细介绍如何使用Ksoap2来调用.NET WebService。 1. **理解SOAP**: SOAP是一种基于XML的协议,用于在Web上交换结构化的和类型化的信息。它定义了一种标准的消息结构,允许不同系统之间的应用程序进行通信,...
- 在需要调用Web Service的类中,导入ksoap2相关的包并编写调用代码。 6. **使用示例** 以下是一个简单的调用Web Service的例子: ```java SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); ...
由于Android SDK自身并未提供专门用于调用WebService的库,所以我们通常会借助第三方库,比如KSOAP2,来实现这一功能。 KSOAP2是一个轻量级的、专门为移动设备设计的库,适用于Android系统。它可以方便地帮助开发者...
以下是如何在Android项目中使用KSOAP2的详细步骤: 1. **引入KSOAP2库**: 首先,你需要从官方源或第三方网站(如Google Code仓库)下载KSOAP2的Android版本。将下载的jar文件添加到你的Android项目的lib目录中,...
Android调用webservice所需Ksoap2 jar包
然而,Android SDK本身并未提供直接调用WebService的库,因此开发者通常会依赖第三方库,如KSOAP2,来进行这样的操作。 KSOAP2是一个轻量级的库,特别适合于Android环境,因为它体积小且易于集成。要使用KSOAP2,...
要在Android项目中使用KSOAP2,首先需要将对应的jar包(如ls-kosap.jar)添加到项目的libs目录下,然后在项目的build.gradle文件中将其添加到依赖项,或者通过Eclipse或Android Studio的类路径设置进行添加。...
android中调用webservice:ksoap2.jar
1. **添加依赖**:在你的Android项目中,你需要将ksoap2-android-3.6.4.jar包导入到项目的lib目录下,然后在构建路径中包含这个库。如果是使用Gradle构建系统,可以在build.gradle文件中添加如下依赖: ```gradle ...
总的来说,kSOAP2精简版jar包为Android开发者提供了一个高效且简洁的解决方案,用于在Android应用中调用Web服务,而无需担心与Android系统的兼容性问题。只需将这个jar包导入项目,就可以开始编写与Web服务交互的...
ksoap2-android是一个轻量级的库,专为Android平台设计,用于调用基于SOAP的Web服务。SOAP(Simple Object Access Protocol)是一种用于交换结构化信息的协议,常用于Web服务。在这个教程中,我们将探讨如何使用...
以下是一个详细的步骤和示例代码,说明如何在Android中利用ksoap2调用WebService。 1. **添加ksoap2依赖** 首先,你需要下载ksoap2的jar文件,如`ksoap2-android-assembly-3.6.1-jar-with-dependencies.jar`。将这...
本篇文章将详细探讨如何在Android中利用ksoap2库来调用WebService接口,并通过jar包的方式进行集成。 **ksoap2库介绍** ksoap2是一个轻量级的开源库,专门用于Android平台,它使得Android应用程序能够方便地与基于...
在Android平台调用Web Service需要依赖于第三方类库ksoap2,它是一个SOAP Web service客户端开发包。此jar包用于android和webservice进行通信,目前版本3.6.2