0

Android 2.1 API を使用しています。ksoap プロトコルを使用して、Web からデータをダウンロードします。結果はこの例外org.ksoap2.serialization.SoapPrimitiveであり、理由がわかりません。

デバッグを使用すると、forは最初のラウンドで正しく実行されますが、2 回目には education がハングre = (SoapObject) ((SoapObject) envelope.getResponse ()). getProperty (s)し、エラーが報告されますorg.ksoap2.serialization.SoapPrimitive

コードは次のとおりです。

request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("dev", false);
request.addProperty("Cap", input_cap.getText().toString());

envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
envelope.addMapping(NAMESPACE,Offerta.Offerta_CLASS.getSimpleName(),Offerta.Offerta_CLASS);

androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);

int nOff = ((SoapObject) envelope.getResponse()).getPropertyCount();
SoapObject re;

for (int i = 0; i < nOff; i++) {
  re = (SoapObject) ((SoapObject) envelope.getResponse()).getProperty(i);
  img.setImageBitmap(getBitmap(Integer.parseInt(re.getProperty(0).toString())));
  titolo.setText(re.getProperty(1).toString());
  descrizioneTitolo.setText(re.getProperty(3).toString());
  provincia.setText(getProvincia(Integer.parseInt(re.getProperty(13).toString())));
  sintesi.setText(re.getProperty(2).toString());
  contenitore_paese.addView(view);
}
4

2 に答える 2

0

エラーメッセージは、次の行の2番目のプロパティがSoapObjectではなくSoapプリミティブであるように聞こえます。これは、型キャストしているため、実行時に壊れています。

re = (SoapObject) ((SoapObject) envelope.getResponse()).getProperty(i);
于 2012-07-02T16:26:36.003 に答える
0

SoapObjectの代わりにSoapPrimitiveにキャストするだけです。また、理由はわかりませんが、コードが表示されれば、論理的である可能性があります。

SoapPrimitive re = (SoapPrimitive)  envelope.getResponse().getProperty(i) ;
于 2012-12-29T21:55:32.233 に答える