zoukankan      html  css  js  c++  java
  • 当Web Services遇到Android(初步接触时可能遇到的错误)

    Web Services移植到Android平台上时,通过需要导入ksoap2-android这个包。ksoap2 是JAVA 环境下的一个轻量级Web Services 客户端库, 被设计用在Applets 和J2ME 中;而ksoap2-android 是其在Android平台上的移植,它提供了一个高效的SOAP 库,借助ksoap2 我们就能够轻松访问Web Services 服务了。

    然而在实际开发过程中,总是会遇到一些问题,让人感觉很崩溃,现总结如下。

    1.android开发过程中的权限问题

    运行程序后,Log信息中提示Runtime Exception,但是又没有给出程序中具体的错误信息,那么很有可能就是因为权限问题,比如访问网络的权限。

    解决方法:在AndroidManifest.xml文件中,加入以下代码,表示该程序需要有访问网络的权限。

    <uses-permission android:name="android.permission.INTERNET" />

    如果还涉及到其它权限,可参考 http://dev.10086.cn/cmdn/wiki/index.php?doc-view-5887.html

    2.ksoap2-android.jar的导入问题

    此时Log信息中经常会提示java.lang.NoClassDefFoundError,从而导致程序崩溃。

    解决方法:以前开发java程序时导入jar包都是用一下的方法:

        工程点击右键->Build Path->Add Libraries->User Library->选择包含需要的jar包的Library(如果没有的话就点击User Libraries新建一个Library,然后再选中)

        但是,在Android中导入jar包的步骤如下:工程点击右键->Build Path->Add External Archives->选择要导入的jar包

    原因猜想:如果是利用第一种方法导入的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中。

    3.Java Build Path设置问题

    依旧是令人抓狂的java.lang.NoClassDefFoundError

    解决方法:右键项目,依次选择properties ---- java build path -----order and report ,然后在koasp2包前面打上勾(最好是select all)

    4.Andorid访问本机的地址

    这个问题笔者还没有接触过,不过也列出来算做提醒,防止有人遇到。

    Android模拟器访问Tomcat上部署的webservice程序时,不能用localhost或者本机IP,Android默认访问本机地址为10.0.2.2。

     

    如果上面几种方法都试过后,问题还是没有解决,不妨先Project -> clean 一下,最好再重启下模拟器或重新连接手机。


    OK,上面只是个人的一些简单总结,欢迎大家补充。

     

  • 相关阅读:
    IAR EWARM PRINTF/SCANF FORMATTER
    Windows Self Signed Driver
    Remove a Driver Package from the Driver Store
    CMSIS-DAP调试器
    CHM文件无法查看内容解决办法
    HRESULT 0x80131515 解决方法
    dmalloc 原文 翻译整理
    Linux错误代码
    Windows 错误代码
    调码王版本历史
  • 原文地址:https://www.cnblogs.com/pinky878/p/2445916.html
Copyright © 2011-2022 走看看