나는 webservices를 호출하고 데이터를 채우는 응용 프로그램을 만듭니다. 하지만 여기에 몇 가지 이상한 일들 때문에 occure.i IOException과 arrayIndexoutofBound와 오류가있어 ... 난 간단한 웹 서비스를 분석하는 데 SAX 파서를 사용합니다.IOException 파서에서
오류 ::
07-02 16:50:52.992: E/NearbyScreen(31762): SAX PARSER ERRORjava.lang.ArrayIndexOutOfBoundsException: length=8192; regionStart=-2888; regionLength=11080
07-02 16:50:52.992: W/System.err(31762): java.lang.ArrayIndexOutOfBoundsException: length=8192; regionStart=-2888; regionLength=11080
07-02 16:50:53.002: E/NearbyScreen(31762): SAX PARSER ERRORjava.io.IOException: Attempted read on closed stream.
07-02 16:50:53.002: W/System.err(31762): at java.util.Arrays.checkOffsetAndCount(Arrays.java:1731)
07-02 16:50:53.012: W/System.err(31762): at java.net.PlainSocketImpl.read(PlainSocketImpl.java:484)
07-02 16:50:53.012: W/System.err(31762): at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
07-02 16:50:53.012: W/System.err(31762): at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240)
07-02 16:50:53.012: W/System.err(31762): at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:103)
07-02 16:50:53.012: W/System.err(31762): at org.apache.http.impl.io.AbstractSessionInputBuffer.read(AbstractSessionInputBuffer.java:134)
코드 :
DefaultHttpClient client = new DefaultHttpClient();
String ConcateURL = String.valueOf(newViewPortlatitude) + "," + String.valueOf(newViewPortlongitude)+"/TOUR/1000/1/5/";
URL URLPush = new URL(getString(R.string.NearbyURL)+ConcateURL);
Log.i(TAG, "** URL ** ->" + URLPush);
HttpGet httpGet = new HttpGet(URLPush.toURI());
HttpParams httpParams = httpGet.getParams();
int timeoutdConnection = 30000;
HttpConnectionParams.setConnectionTimeout(httpParams,
timeoutdConnection);
httpGet.setParams(httpParams);
HttpResponse response = client.execute(httpGet);
HttpEntity entity = response.getEntity();
if (entity != null) {
Log.i("MyMapActivity", "--1--");
instream = entity.getContent();
Log.i("MyMapActivity", "--2--");
}
if (instream != null) {
Log.i("MyMapActivity", "--3--");
/********** test *******/
SAXParserFactory saxPF = SAXParserFactory.newInstance();
SAXParser saxP = saxPF.newSAXParser();
XMLReader xmlR = saxP.getXMLReader();
System.out.println("url >>>>>" + URLPush);
NearByHandler myXMLHandler = new NearByHandler();
xmlR.setContentHandler(myXMLHandler);
xmlR.parse(new InputSource(instream));
instream.close();
whaleWatchingInfoList = myXMLHandler.getQuotes();
// Fill Arraylist by Handler
Log.i(TAG, "whaleWatchingInfoList size "
+ whaleWatchingInfoList.size());
Log.w("AndroidParseXMLActivity", "Done");
}
}catch (ConnectTimeoutException e) {
Log.e(TAG, "ConnectionTimeOUT " + e);
IsConnectionTimeoutException = true;
//Flag ConnectionTimout
}
catch (Exception e) {
Log.e(TAG, "SAX PARSER ERROR" + e);
e.printStackTrace();
//Flag ConnectionTimout
}
업데이트 : NearByHandler 클래스에서
07-02 17:10:52.042: D/Process(1606): com.android.server.am.ActivityManagerService.serviceDoneExecuting(ActivityManagerService.java:12474)
07-02 17:10:52.042: D/Process(1606): android.app.ActivityManagerNative.onTransact(ActivityManagerNative.java:723)
07-02 17:10:52.042: D/Process(1606): com.android.server.am.ActivityManagerService.onTransact(ActivityManagerService.java:1714)
07-02 17:10:52.042: D/Process(1606): android.os.Binder.execTransact(Binder.java:338)
07-02 17:10:52.042: D/Process(1606): dalvik.system.NativeStart.run(Native Method)
07-02 17:10:53.643: D/WifiStateMachine(1606): fetchRssiAndLinkSpeedNative RSSI = -66
07-02 17:10:56.656: D/WifiStateMachine(1606): fetchRssiAndLinkSpeedNative RSSI = -65
07-02 17:10:59.669: D/WifiStateMachine(1606): fetchRssiAndLinkSpeedNative RSSI = -65
07-02 17:11:02.512: D/PhoneStatusBarPolicy(1695): silentresetvalue = 0, mTimerEnabled = false
07-02 17:11:02.512: D/PhoneStatusBarPolicy(1695): updateSignalStrength(), in service, remove timer
07-02 17:11:02.542: D/PhoneStatusBarPolicy(1695): isCdma():false hasService:true mSimState=UNKNOWN gprsState=0 mDataState=-1 dataActivity=0 mPhone.htcModemLinkOn:false hspa==true
07-02 17:11:02.542: D/PhoneStatusBarPolicy(1695): updateDataIcon(), silentresetvalue = 0, mTimerEnabled = false
07-02 17:11:02.542: D/PhoneStatusBarPolicy(1695): updateDataIcon(), in data service, do nothing
07-02 17:11:02.672: D/WifiStateMachine(1606): fetchRssiAndLinkSpeedNative RSSI = -66
07-02 17:11:05.685: D/WifiStateMachine(1606): fetchRssiAndLinkSpeedNative RSSI = -65
07-02 17:11:08.688: D/WifiStateMachine(1606): fetchRssiAndLinkSpeedNative RSSI = -64
07-02 17:11:09.449: I/global(2636): In close() at SocketHttpClientConnection
07-02 17:11:09.449: I/global(2636): call socket close in SocketHttpClientConnection, socket=Socket[address=www.google-analytics.com/74.125.236.101,port=80,localPort=43849]
07-02 17:11:11.701: D/WifiStateMachine(1606): fetchRssiAndLinkSpeedNative RSSI = -65
07-02 17:11:13.833: D/AutoSetting(2358): service - handleMessage() incoming message, what:50
07-02 17:11:13.833: D/AutoSetting(2358): service - handleMessage() stop self
07-02 17:11:13.843: D/AutoSetting(2358): service - onDestroy()
07-02 17:11:13.873: D/AutoSetting(2358): service - handleMessage() incoming message, what:100
07-02 17:11:13.893: D/AutoSetting(2358): service - onDestroy() END
07-02 17:11:13.903: D/Process(1606): killProcessQuiet, pid=2358
07-02 17:11:13.903: D/Process(1606): dalvik.system.VMStack.getThreadStackTrace(Native Method)
07-02 17:11:13.903: D/Process(1606): java.lang.Thread.getStackTrace(Thread.java:599)
07-02 17:11:13.903: D/Process(1606): android.os.Process.killProcessQuiet(Process.java:837)
그럴 수는 없습니다 .. 거기에 맞는 메시지가 있습니다. –
모든 스택 추적을 원래 질문에 추가 할 수 있습니까? 현재는 스택 추적의 맨 위 만 표시됩니다. – Deniz
NearByHandler는 비동기 작업을 수행하지 않습니다. – Deniz