Could not find class 'org.ksoap2.serialization.SoapObject', referenced from method com.neusoft.kunming.WebservercallActivity.getWeather
java.lang.NoClassDefFoundError: org.ksoap2.serialization.SoapObject
解決方案: 匯入ksoap2.jar,最後不要忘記一定要用 Add External Jars... 不能用Add Jars
然後要在Orader and Export 鉤選你的ksoap2.jar,否則不會匯出到APK
解析detail = (SoapObject) result.getProperty("getWeatherbyCityNameResult");
提示:
java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitive
返回數組時候才有 SoapObject
如果你只輸出單一的資料:
Object c=envelope.getResponse();if(c==null){System.out.println("return null");return;}SoapPrimitive test=(SoapPrimitive)c;Log.i("date",test.toString());Toast.makeText(this, c.toString(), Toast.LENGTH_LONG).show();Log.i("date",c.toString());return;
兩種方法都可以輸出正常的資料;
如何訪問string[][] 二維數組?
二維數組返回一個Vector 自己解析就可以了:
//返回數組時候才可以使用SoapObject//否則java.lang.ClassCastException: org.ksoap2.serialization.SoapPrimitiveVector<SoapObject> soaparray=extracted(c);for(int i=0;i<soaparray.size();i++){SoapObject detail=soaparray.get(i);parseWeather(detail);}@SuppressWarnings("unchecked") private Vector<SoapObject> extracted(Object c) { return (Vector<SoapObject>)c; }
parseWeather 其實就是解析SoapObject的方法