已尝试使用 Eclipse IDE 与位于http://www.w3schools.com/webservices/tempconvert.asmx的 .NET Web 服务对话的控制台应用程序中的 KSOAP2 库。没问题,简单直接。将代码嵌入到一个简单的方法 test() 中。
当我希望一切都可以从 Android 应用程序中运行时,问题就开始了。
这是我所做的(以及问题)的摘要:
1.我在 Eclipse IDE 中使用 Android 2.3.1 SDK 生成了一个新的 Android 项目,并且我还创建了一个基于相同 SDK 的 Android 虚拟设备。启动虚拟设备时没有问题。工作得很好。
2.然后我在 AndroidManifest.xml 文件中添加了带有 android:name="android.permission.INTERNET" 的 uses-permission 标签。
3.之后,我添加了 KSOAP2 库,就像我在制作控制台应用程序时所做的那样。
4.现在我添加了之前测试和验证的方法 test(),包括正确的导入语句。一切看起来都很好。没有警告。
5.编译并启动项目,在第一行代码我得到了SoapObject 的类加载器失败,即“找不到”org.ksoap2.serialization.SoapObject。这行代码看起来像这样: SoapObject objSoapTest = new SoapObject("http://tempuri.org/", "FahrenheitToCelsius");
试图查看它是否可以检测到同一包中的其他类,因此我在上述代码之前添加了这行代码:PropertyInfo objPropertyInfo = new PropertyInfo();
遇到了同样的问题......“找不到”org.ksoap2.serialization.PropertyInfo。
这里有什么问题?尝试更改 Java Build Path 中的“Order and Export”,但没有结果。我需要把这个 KSOAP2 库放在我有 Android SDK 文件的地方吗?我是一个铁杆 C++ 程序员,所以我对 Eclipse IDE 等没有太多经验,所以我真的需要一些关于这个的建议。
除了上面提到的,我还创建了一个 Java Swing 应用程序,连接到 .net 网络服务完全没有问题。AVD 对某些库的访问是否有任何限制?我需要添加任何其他权限吗?
顺便说一句 1. 我已经测试了其他 Android 应用程序,连接到 Internet,在 ListView 中流式传输图片资源,它工作得很好。
顺便说一句 2. 我使用的是 Windows 7。
尽我所能!