JDOM2 라이브러리 (정확히 2.0.5)를 사용하여 Android 애플리케이션에서 XML 파일을 구문 분석하는 데 문제가 있습니다. 자바 프로젝트에서 Android에서 JDOM2로 XML 파일 구문 분석
, 그것은 잘 작동하지만, 안드로이드 응용 프로그램 프로젝트에서, 나는 다음과 같은 메시지가 있어요 :package fr.jcdc.exemple.jdom;
import java.io.IOException;
import java.util.List;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import android.util.Log;
public class XMLReader {
public XMLReader() {
super();
}
public void loading() {
try {
SAXBuilder builder = new SAXBuilder();
Document document = (Document) builder.build("http://jeancdc.perso.sfr.fr/fichierXML.xml");
Element rootNode = document.getRootElement();
List<Element> charactersList = rootNode.getChildren("personnage");
for (int i = 0; i < charactersList.size(); i++) {
Element node = (Element) charactersList.get(i);
Log.d("tag", node.getChildText("prenom") + " " + node.getChildText("nom"));
}
}
catch (IOException ioex) {
Log.d("ioex", ioex.getMessage());
}
catch (JDOMException jdomex) {
Log.d("jdomex", jdomex.getMessage());
}
}
}
: "열 수 없습니다를
http://jeancdc.perso.sfr.fr/fichierXML.xml"여기
내의 XMLReader 클래스
그리고 내 메인 클래스 :
: 이package fr.jcdc.exemple.jdom;
import android.os.Bundle;
import android.app.Activity;
public class MainActivity extends Activity {
private XMLReader xmlReader = new XMLReader();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
xmlReader.loading();
}
}
이것은 내가 내 로그에 얻을 예외 추적의 일부입니다
06-24 22:58:39.794: D/ioex(18560): Couldn't open http://jeancdc.perso.sfr.fr/fichierXML.xml
06-24 22:58:39.794: W/System.err(18560): java.io.IOException: Couldn't open http://jeancdc.perso.sfr.fr/fichierXML.xml
06-24 22:58:39.864: W/System.err(18560): at org.apache.harmony.xml.ExpatParser.openUrl(ExpatParser.java:755)
06-24 22:58:39.864: W/System.err(18560): at org.apache.harmony.xml.ExpatReader.parse(ExpatReader.java:292)
06-24 22:58:39.864: W/System.err(18560): at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:217)
06-24 22:58:39.864: W/System.err(18560): at org.jdom2.input.sax.SAXBuilderEngine.build(SAXBuilderEngine.java:277)
06-24 22:58:39.864: W/System.err(18560): at org.jdom2.input.SAXBuilder.build(SAXBuilder.java:1141)
.....
06-24 22:58:39.864: W/System.err(18560): Caused by: android.os.NetworkOnMainThreadException
06-24 22:58:39.872: W/System.err(18560): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
06-24 22:58:39.872: W/System.err(18560): at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
06-24 22:58:39.872: W/System.err(18560): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
06-24 22:58:39.880: W/System.err(18560): ... 20 more
응용 프로그램에 네트워크 권한이 있습니까? – rolfl
이 줄을 AndroidManifest.xml에 추가했습니다 : 다른 사용자에게 권한을 추가해야합니까? –
오류 메시지에 대해 자세히 설명하는 방법에 대해 설명합니다. 원인이 있니? – rolfl