2011-01-23 3 views
1

간단한 문제가있어 알아낼 수 없습니다. geoname WebService.search 메서드를 실행하고 "java.lang.StringIndexoutOfBoundsException"오류가 계속 발생하려고합니다. 난 평범한 오래된 자바에서 프로그램을 실행하고 아무 문제없이 잘 작동합니다. Android에서 실행하고 "java.lang.StringIndexoutOfBoundsException"오류가 발생합니다. 내 매니페스트에 "인터넷"권한이 설정되어 있습니다. 이 오류는 Webservice.search (searchCriteria)가 실행될 때 발생합니다. 다음은 코드입니다.OutofBoundsException Android에서 geonames를 실행 중입니다.

WebService.search (searchCriteria) 메소드를 실행하면 오류가 발생합니다. 내가 로그 캣 얻을 오류 :

java.lang.StringIndexOutOfBoundsException 
    at java.lang.String.substring(String.java:1646 
    at org.jdom.input.SAXHandler.startElement(SAXHandler.java:568) 
    at org.apache.harmony.xml.ExpatParser.startElement(ExpartParser.java:146) 
    .... 

내가 제대로 내 Java 빌드 경로에 jdom.jar 및 geonames.-1.0.6.jar를 넣어, 그래서 내가 거기에 문제가 있다고 생각하지 않습니다. 흥미로운 점은 WebService.postalCodeSearch (postalSearch) 및 WebService.weatherIcao ("KPBI")를 사용하는 코드를 다시 작성한 것이므로 안심해도 문제없이 완벽하게 작동한다는 것입니다. 내가 말했듯이이 코드는 Java SE6에서 하루 종일 실행됩니다. 무엇이 잘못 될지에 대한 아이디어가 있습니까?

답변

0

하위 문자열 함수를 어딘가에 호출하고 있습니까? 이 오류는 존재하지 않는 하위 문자열 색인 (예 : string.length()보다 큰 색인)을 읽으려고한다는 것을 의미하는 것으로 보입니다.

+0

아니, 적어도 나는 그렇게 생각하지 않는다. WebService.search 메서드가 실행될 때 오류가 발생합니다. 전에 말했듯이, Java SE6에서는 실행되지만 Android에서는 실행되지 않습니다. 또한 WebService 클래스 내에서 WebService.postalCodeSearch() 및 WebService.weatherIaco()와 같은 다른 메서드를 사용할 수 있습니다. –

+0

웹 서비스가 안드로이드의 다른 클래스에서 사용되는 것과 같이 어리석은 것일 수 있습니까? 어쩌면 성명을 사용할지도 모른다. (나는 그 코드를 모른다. org.geonames.webservice()와 같은 것으로 생각된다.) 그게 정말 야생 일까? btw, 다른 것을 많이 모른다. – Nanne

+0

I org.goenames.WebService.search()를 시도했지만 행운이 없었습니다. 소스를 거치지 않고 여기에서 무엇을해야할지 모릅니다. geonames는 거기에 .jar의 소스를 제공했습니다. 귀하의 제안에 감사드립니다. –

0

그래, 문제가 해결되었습니다. 근본 원인이 무엇인지는 확실치 않지만 실행 중이며 AVD 2.1입니다. 이 AVD를 삭제하고 Android 사이트에서 최신 AVD를 다시로드하고 새로운 AVD 2.3을 만들었습니다. 처음 시도했을 때 응용 프로그램이 실행되었습니다! 이 문제를 보거나 해결책을 제시 한 모든 사람들에게 감사드립니다.

0

이것은 2.2 이후에 수정 된 android 2.1의 버그 this 버그로 인해 발생합니다. geonames 클라이언트 라이브러리를 사용하여 동일한 문제가 발생했습니다. 문제를 해결하려면 this JDOM 포크를 사용하십시오.

관련 문제