- 浏览: 39828 次
-
文章分类
- 全部博客 (37)
- java (37)
- [文摘20081112]经典语录 (1)
- php+mysql预查询prepare 与普通查询的性能对比 (1)
- Android采用SharedPreferences保存用户登录信息 (1)
- 找bug记(2) (1)
- 细节优化提升资源利用率 (1)
- java(j2se)学习笔记----类注释文档编写方法? (1)
- 如何查看Class文件编译的JDK版本 (1)
- 验证码显示不了,报Could not initialize class sun.awt.X11GraphicsEnvironment (1)
- Android使用KSOAP2调用WebService及正确导入jar包的问题 (1)
- The content of the adapter has changed but ListView did not receive a notification. (1)
- 很想写些CMMI的东西 (1)
- JPA & Hibernate 注解 (1)
- Java反编译工具――Jode (1)
- Eclipse3.0.0插件安装解决方法 (1)
- SVG简介及相关工具 (1)
- 开始在这个BLOG里放一部分MapXtreme2004相关代码 (1)
- 支持.NET环境的GIS开发工具MapXtreme2004 (1)
- 将DAT格式视频文件转换成ASF和WMV格式视频文件 (1)
- 《漫谈设计模式》一书终于出版了 (1)
- 一位程序员的一个LBS应用的想法 (1)
- 一刷网络投票的小程序 (1)
- 面试字符串处理之单词翻转 (1)
- rails 上载xls文件 (1)
- 如何获得Java项目文件所在的相对路径 (1)
- 学习FlexViewer(一)——事件和框架 (1)
- Android开发之消息处理机制(二)——消息循环 (1)
- JAVA操作——获取文件扩展名,去掉文件扩展名 (1)
- freemarker 读取session 值 (1)
- xfire 使用用户名/密码进行身份认证 (1)
- java中的图片处理 (1)
- HTC Touch HD2/LEO/T8585刷机教程 进三色屏 (1)
- js性能问题 (1)
- js 事件收集 (1)
最新评论
-
Glorin:
非常感谢你,让我的问题能够得以解决。
验证码显示不了,报Could not initialize class sun.awt.X11GraphicsEnvironment -
thzthbthy:
/*
* Java文件操作 获取文件扩展名
*
...
JAVA操作——获取文件扩展名,去掉文件扩展名 -
jyjava:
你debug调试,应该很快会定位到的
找bug记(2) -
xuehua1987:
上面的方法返回值是void ,怎么可以返回你取到的连接???? ...
找bug记(2)
Android使用KSOAP2调用WebService及正确导入jar包的问题
?
[size=13px;]<span style="font-family: courier new, courier;">[size=16px;]错误信息[/size]<br>[/size]</span>
[size=13px;]<span style="font-family: courier new, courier;">??? 最近在学Android使用KSOAP2调用现有的Webservice的方法,期间在网上找了很多代码,但是每次在Android模拟器中运行的时候程序都会崩溃,搞得自己都快崩溃了。。。。[/size]</span>
[size=13px;]<span style="font-family: courier new, courier;">??? 查看了一下LogCat中的错误报告,发现是因为java.lang.NoClassDefFoundError导致程序崩溃的:[/size]<br></span>
<div class="dp-highlighter bg_java">
<div class="bar">
<div class="tools">
<a class="ViewSource" title="view plain" href="http://topmanopensource.iteye.com/admin/blogs/#">view plain</a><a class="CopyToClipboard" title="copy to clipboard" href="http://topmanopensource.iteye.com/admin/blogs/#">copy to clipboard</a><a class="PrintSource" title="print" href="http://topmanopensource.iteye.com/admin/blogs/#">print</a><a class="About" title="?" href="http://topmanopensource.iteye.com/admin/blogs/#">?</a>
<ol class="dp-j">
<li class="alt"><span><span>ERROR/AndroidRuntime(</span><span class="number">600</span><span>):?java.lang.NoClassDefFoundError:?org.ksoap2.serialization.SoapObject????</span></span></li>
<li>
<span>????at?webservice.weather.WeatherActivity.getWeather(WeatherActivity.java:</span><span class="number">104</span><span>)????</span>
</li>
<li class="alt">
<span>????at?webservice.weather.WeatherActivity.showWeather(WeatherActivity.java:</span><span class="number">84</span><span>)????</span>
</li>
<li>
<span>????at?webservice.weather.WeatherActivity.access$</span><span class="number">0</span><span>(WeatherActivity.java:</span><span class="number">80</span><span>)????</span>
</li>
<li class="alt">
<span>????at?webservice.weather.WeatherActivity$</span><span class="number">1</span><span>.onClick(WeatherActivity.java:</span><span class="number">75</span><span>)????</span>
</li>
<li>
<span>????at?android.view.View.performClick(View.java:</span><span class="number">2408</span><span>)????</span>
</li>
<li class="alt">
<span>????at?android.view.View$PerformClick.run(View.java:</span><span class="number">8816</span><span>)????</span>
</li>
<li>
<span>????at?android.os.Handler.handleCallback(Handler.java:</span><span class="number">587</span><span>)????</span>
</li>
<li class="alt">
<span>????at?android.os.Handler.dispatchMessage(Handler.java:</span><span class="number">92</span><span>)????</span>
</li>
<li>
<span>????at?android.os.Looper.loop(Looper.java:</span><span class="number">123</span><span>)????</span>
</li>
<li class="alt">
<span>????at?android.app.ActivityThread.main(ActivityThread.java:</span><span class="number">4627</span><span>)????</span>
</li>
<li class="alt">
<span>????at?java.lang.reflect.Method.invoke(Method.java:</span><span class="number">521</span><span>)????</span>
</li>
<li>
<span>????at?com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:</span><span class="number">868</span><span>)????</span>
</li>
<li class="alt">
<span>????at?com.android.internal.os.ZygoteInit.main(ZygoteInit.java:</span><span class="number">626</span><span>)????</span>
</li>
</ol>
<textarea class="java" style="display: none;" cols="20" rows="2" name="code" readonly>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)</textarea>
?
[size=16px;]解决方法[/size]<br>[size=13px;]</span>
[size=13px;]<span style="font-family: courier new, courier;">找了很多资料,最后才发现是jar包的导入有问题。。。。以前开发java程序时导入jar包都是用一下的方法:[/size][/size]
[size=13px;]<span style="font-family: courier new, courier;">??? 工程点击右键->Build Path->Add Libraries->User Library->选择包含需要的jar包的Library(如果没有的话就点击User Libraries新建一个Library,然后再选中)[/size]</span>
[size=13px;]<span style="font-family: courier new, courier;">但是,在Android中这样导入jar包会导致程序在模拟器中运行时抛出[/size]java.lang.NoClassDefFoundError异常,在Android中导入jar包的步骤如下:</span>
[size=13px;]????? <span style="color: #ff0000;">工程点击右键->[/size]</span>[size=13px;]<span style="font-family: courier new, courier;"><span style="color: #ff0000;">Build Path->Add External Archives->选择要导入的jar包[/size]</span></span>
[size=13px;]<span style="font-family: courier new, courier;"><span style="color: black;"><span style="color: black;">另外还有一个问题就是:Android模拟器访问Tomcat上部署的webservice程序时,不能用localhost或者本机IP,Android默认访问本机地址为10.0.2.2。[/size]</span></span></span>
[size=13px;]<span style="font-family: courier new, courier;"><span style="color: #ff0000;"><span style="color: #000000; font-size: 16px;">原因猜想[/size]</span></span></span>
[size=13px;]<span style="font-family: courier new, courier;"><span style="color: #ff0000;"><span style="color: #000000;">??? 对于产生上述NoClassDefFoundError的原因,查看一下工程中的classpath文件就可以找到。如果是利用第一种方法导入的jar包的话,classpath文件中会生成这样一条语句:<span style="color: #ff0000;"><classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/KSOAP2"/>[/size],这种导入jar包的方法依赖于开发环境eclipse;而如果用第二种方法导入jar包的话,会在classpath中产生如下的语句:</span></span></span></span>
[size=13px;]<span style="font-family: courier new, courier;"><span style="color: #ff0000;"><span style="color: #000000;"><span style="color: #ff0000;"><classpathentry kind="lib" path="D:/JAVATOOLS/ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar"/>,<span style="color: #000000;">这种导入方式是用的绝对路径,与eclipse开发环境无关,而且以这种方式导入后,jar包的信息会被加到工程class.dex中,进而会被打包到apk中。[/size]</span></span></span></span></span>
[size=13px;]<span style="font-family: courier new, courier;"><span style="color: #ff0000;"><span style="color: #000000;">??? 我猜想,在运行虚拟机的时候,虚拟机是脱离了eclipse开发环境的,所以第一种依赖于eclipse环境的导入方式会出现上述错误;而第二种导入方式由于不依靠eclipse,将jar包的信息放到了class.dex中,所以运行无误![/size]</span></span></span>
发表评论
-
js 事件收集
2012-02-08 13:18 582一般事件 事件 浏 ... -
js性能问题
2012-02-08 13:13 789随着web应用的复杂度日渐提高,JavaScript代 ... -
HTC Touch HD2/LEO/T8585刷机教程 进三色屏
2012-02-07 15:53 1093[size=14px; line-height: 21 ... -
java中的图片处理
2012-02-04 12:44 796附件中的文件包括: 1.图片的压缩 2.处理圆角图片 ... -
xfire 使用用户名/密码进行身份认证
2012-02-03 16:59 1208对SOAP报文进行身 ... -
freemarker 读取session 值
2012-02-03 08:25 2539<span style="font-f ... -
JAVA操作——获取文件扩展名,去掉文件扩展名
2012-01-31 14:08 2320<p> 昨天收邮件,得知要参加一个产品部的 ... -
Android开发之消息处理机制(二)——消息循环
2012-01-11 14:53 842<h1>Android开发 ... -
学习FlexViewer(一)——事件和框架
2012-01-11 11:44 1239????? 上午做了关于FlexViewer的讲座,项 ... -
如何获得Java项目文件所在的相对路径
2011-12-28 15:08 2283[size=18px;]今天在开发中做一个java项 ... -
rails 上载xls文件
2011-12-21 12:14 1115?<span style="font- ... -
面试字符串处理之单词翻转
2011-12-21 11:34 909<p align="left&quo ... -
一刷网络投票的小程序
2011-12-20 11:44 1316最近看到网上一投 ... -
一位程序员的一个LBS应用的想法
2011-12-20 10:14 756最近状态不佳, ... -
《漫谈设计模式》一书终于出版了
2011-12-19 13:09 948<p class="MsoNor ... -
将DAT格式视频文件转换成ASF和WMV格式视频文件
2011-12-17 15:29 890以*.ASF和*.WMV为后缀名的视频文件,是微软针对 ... -
支持.NET环境的GIS开发工具MapXtreme2004
2011-12-16 16:12 703<font color="#ff000 ... -
开始在这个BLOG里放一部分MapXtreme2004相关代码
2011-12-15 14:38 564MapXtreme2004是嵌入到.NET环境中的地理 ... -
SVG简介及相关工具
2011-12-14 15:47 753<span style="" ... -
Eclipse3.0.0插件安装解决方法
2011-12-14 15:27 792<p class="MsoNorma ...
相关推荐
你可以从[Google Code仓库](http://code.google.com/p/ksoap2-android/downloads/list?can=1&q=&colspec=Filename+Summary+Uploaded+Size+DownloadCount)获取jar包。将下载的jar文件复制到项目的`lib`目录下(如果不...
下面将详细讲解如何在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
本例子介绍了 Android 调用天气预报的 WebService 的简单例子,使用 KSOAP2 库可以简化 Android 调用天气预报的 WebService 的过程,使得开发者可以更方便地调用 WebService,並获取天气预报信息。