0

ブレークポイントを使用するとこのエラーが発生し、例外をキャッチしました。

httpTransport.call(SOAP_ACTION, envelope);

httpTransport接続すべきではないということですnullか?

    public class MainActivity extends Activity {

TextView tv;

SoapObject request;

SoapSerializationEnvelope envelope;

HttpTransportSE androidHttpTransport;

Object result;

public String METHOD_NAME = "sum";

public String NAMESPACE = "http://ws.calculatorJava.org";

// private String SOAP_ACTION = NAMESPACE + METHOD_NAME;

public String SOAP_ACTION = "http://ws.calculatorJava.org/sum";

public static final String URL = "http://172.168.1.2:8888/CalculatotJava/services

    /Calculate.wsdl";


/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    tv = (TextView) findViewById(R.id.textView1);

    try {

        request = new SoapObject(NAMESPACE, METHOD_NAME);

        request.addProperty("i", 5);

        request.addProperty("j", 15);

        envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);

        envelope.dotNet = true;

        envelope.setOutputSoapObject(request);

        androidHttpTransport = new HttpTransportSE(URL);

        Toast.makeText(getBaseContext(), "GET", Toast.LENGTH_LONG).show();

        androidHttpTransport.call(SOAP_ACTION, envelope);

        result = envelope.getResponse();

        Toast.makeText(getBaseContext(),

                "  Result " + "\n" + result.toString(), 

                        Toast.LENGTH_SHORT)

                .show();

        // System.out.println("Result : " + result.toString());

        tv.setText("Addition : " + result.toString());

    } catch (Exception E) {

        E.printStackTrace();

        tv.setText("ERROR  " + "\n" + E.getClass().getName() + ":"

                + E.getMessage());

    }

}

 }
4

2 に答える 2

0

あなたが gettint networkonmain 例外である場合は、常に Android Async Task でネットワーク関連のタスクを実行してから、メイン スレッドで Async Task を呼び出すことを覚えておいてください。

于 2013-04-07T17:47:51.810 に答える
0

メインUIandroidHttpTransport.call(SOAP_ACTION, envelope);スレッドでこれを呼び出しているため、おそらく失敗しています。マニフェストの SDK バージョンを 8/9 に下げるか、SOAP リクエスト コード全体を AsyncTask または別のスレッド内に配置してみてください。

于 2013-03-28T10:20:02.663 に答える