내 응용 프로그램은 안드로이드 2.에서 실행할 수 있습니다 * 어떤 문제없이 올바르게 KSoap
모듈을 사용할 수 있습니다. 하지만 안드로이드 4 또는 위의 응용 프로그램을 설치 한 후이 오류를 얻을 :안드로이드 점점 안드로이드 4 이상에서 Ksoap
627-627/ir.tsms E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1099)
at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
at java.net.InetAddress.getAllByName(InetAddress.java:220)
at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71)
at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
at libcore.net.http.HttpEngine.connect(HttpEngine.java:303)
at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
at org.ksoap2.transport.ServiceConnectionSE.connect(ServiceConnectionSE.java:46)
at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:68)
at ir.tsms.wsdl.WSDLHelper.call(WSDLHelper.java:34)
at ir.tsms.wsdl.TSMS.checkUserAuth(TSMS.java:64)
내 WSDLHEPLER
은 다음과 같습니다
public class WSDLHelper {
public static String call(SoapObject request) throws TException {
String result;
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
AndroidHttpTransport transport = new AndroidHttpTransport(Strings.URL_TSMS);
transport.debug = true;
try {
/* GETTING ERROR IN BELOW LINE */
transport.call(Strings.URL_TSMS + request.getName(), envelope);
result = envelope.getResponse().toString();
} catch (IOException ex) {
Log.e("" , ex.getMessage());
throw new TException(PublicErrorList.NOT_EXIST_ERROR_DETAIL);
} catch (XmlPullParserException ex) {
Log.e("" , ex.getMessage());
throw new TException(PublicErrorList.NOT_EXIST_ERROR_DETAIL);
}
if (result.equals(String.valueOf(Integers.CODE_USER_PASS_FALSE)))
throw new TException(PublicErrorList.USERNAME_PASSWORD_ERROR);
return result;
}
public static String convert1(String str) {
return str.substring(1, str.length() - 1);
}
public static String[] convert2(String str) {
return str.split(", ");
}
public static String[] convert3(String str) {
return str.split(",");
}
}
안드로이드 2.2,3,3에서 테스트 후 *없는 문제.. 나는 왜이 모듈이 안드로이드 4에서 실행할 수 없는지 모르겠다. 제발 도와주세요.
내 Ksoap
감사
FATAL EXCEPTION: main
android.os.NetworkOnMainThreadException
당신은 안드로이드 3.0에서 당신이 배경 스레드의 네트워킹을 할 필요가 위에, 당신의 MainThread
에 네트워킹됩니다 무슨 잘못
ksoap2-android-assembly-2.4-jar-with-dependencies.jar
안녕하세요. 나는 app.or에서 어떤 네트워킹도하지 않는다.'Thread'는 인터넷에 대한 네트워크 접근만을 체크한다. 정확히 무슨 뜻이야? 'Thread'에서'ksoap'을 움직입니까? –
@MahdiPishguy : 당신은 Ksoap webservice를 소비하고 서버에 요청을함으로써 네트워킹을하고 있습니다. 다른 스레드에서 또는 AsyncTask를 사용하여이 작업을 수행해야합니다. –
AsyncTask를 사용하는 방법을 도울 수 있습니까? 나의 주요 요청과'Ksoap'을 사용하여 게시물에 붙여 넣었다. 감사 –