2010-11-27 5 views
1

"방법 getTextContent()는 유형 요소에 대한 정의되지 않은"대 :안드로이드 자바 PC-자바 코드의이 간단한 라인이 오류를 제공

String color_string = ((Element)((Element)inner_node).getElementsByTagName("color").item(0)).getTextContent(); 

내 안드로이드 자바 버전에서 오류가 발생, Java 코드를 테스트하고 디버깅 할 때 사용하는 내 PC-Java에서는 실행되지 않습니다.

나는 두 버전에

import org.w3c.dom.Element; 

있습니다. 그리고 저는 PC-Java에서 Android-Java로 코드를 복사했습니다. 그래서 나는 둘 다 동일한 구문을 사용하고 있는지 100 % 확신합니다.

답변

6

android reference에는 클래스에 대해 정의 된 메소드가 있습니다. 따라서 일부 라이브러리가 누락되었거나 잘못된 버전 일 수 있습니다.

+0

로 API 레벨을 변경하는 데 필요한 간단한 변경 내놓았다 Android에서 나는 그것을 발견 할 수 없다. – Espen

+1

@Epen - 내 링크를 클릭하여 찾으십시오. 저기에있어. 사용중인 Android SDK의 버전은 무엇입니까? – Bozho

+0

API 레벨 7을 사용하고 있습니다. 어쨌든 String color_string = ((Element) inner_node) .getElementsByTagName ("color") .item (0) .getFirstChild(). getNodeValue(); – Espen

0

Android Java는 Sun Java가 아닙니다. Androids Java는 Apaches Harmony 프로젝트 (공개 라이센스에 따라 Sun Java 재 구현)를 기반으로합니다. 일부 세부 사항은 다를 수 있습니다.

Wiki에는 자바 패키지 목록과 그 출처가 있습니다.

2

@Aspen - 대답은 사용자가 PC에서 잘못된 라이브러리를 사용하고 있다는 것입니다. Sun Java 라이브러리가 아닌 Android 레벨 7 라이브러리에 대해 애플리케이션을 컴파일해야합니다.

관련 Android JAR을 다운로드하여 컴파일 부트 클래스 경로에 저장하면 테스트 컴파일에이를 수정할 수 있습니다. 하지만 PC Java 플랫폼에서 이와 같은 코드를 실행하는 것은 권장하지 않습니다. (그것은 작업,하지만 당신은이 작업을 수행하여 발생하는 많은 문제를 쫓는 끝낼 수 있습니다.)

편집

더 좋은 아이디어는 ADT 플러그인으로 Eclipse를 사용하는 수도에 설명 된대로 this page.

+0

Eclipse를 ADT 플러그인과 함께 사용하고 있습니다. 레벨 7과 8 라이브러리가 있습니다. 더 넓은 대상에 대한 빌딩 레벨 7. 썬 자바 라이브러리에서 이것을 테스트하는 것은 System.out을 사용하고 Eclipse 콘솔에서 DOM이 무엇을 얻는 지 볼 수 있기 때문이다. Sun Java에서 작동합니다. Android Java로 코드를 이동해도 작동하지 않습니다.내 코드의 다른 측면은 Eclipse에서 오류를 발생시키는 getTextContent()를 제외하고 내 휴대 전화에서 컴파일되고 실행됩니다. 지금은 레벨 7 일 것 같습니다. – Espen

2

많이 확인하고 배의 머리 수천를 긁적 후 나는 그것이 요소에 대한 getTextContent() 방법이 같은 사실은 보이지 않는다 8

+0

예 API 레벨 8에서 getTextContent() 메소드가 도입되었습니다. –