안드로이드 개발 질문/답변
(글 수 45,052)
우선 특정 홈페이지의 소스를 받아와 temp.html로 만들어 이를 data/data/패키지 명/files에 저장해두었습니다. 그리고 하고 싶은 것이 HtmlCleaner를 이용해 temp.html을 temp.xml로 변환시키고 남아있는 temp.html은 지우려고 합니다. 그래서 다음과 같이 코드를 작성했습니다.
public void HtmltoXml() {HtmlCleaner cleaner = new HtmlCleaner();
CleanerProperties props = cleaner.getProperties();
props.setOmitComments(true);
TagNode node = null;
String dir="data/data/ropas.android/files";
File f = new File(dir + "temp.html");
MakeFile();
try {node = cleaner.clean(f);
} catch(IOException e) {e.printStackTrace();
}
SimpleXmlSerializer se = new SimpleXmlSerializer(props);
try {se.writeXmlToFile(node, "temp.xml");
} catch(IOException e) {e.printStackTrace();
}
f.delete();
}다음과 같이 메소드를 작성하고 이를 버튼 클릭시 실행하도록 하였습니다. 그런데 temp.html까지는 잘 생성이 됩니다만(중간에 있는 MakeFile() 메소드가 temp.html을 파일 시스템에 쓰게 하는 메소드입니다.) 그 다음에 temp.xml도 생성이 안되고 delete()도 실행되지 않습니다. 그냥 밑 부분을 휙 뛰어넘어가 버립니다. 또 이 메소드가 실행된 후 다른 서비스가 실행되도록 해두었는데 이 서비스는 정상작동됩니다. 즉, 현재 상황이 temp.html이 생성되고 난 후에는 아무런 에러 없이 밑 부분을 그냥 무시해 버리고 넘어가서 다른 코드를 실행해버리는 상황입니다. 에러라도 나면 메세지를 보고 원인을 찾아 보겠는데 왜 이러는지 모르겠습니다. 해당 코드는 안드로이드가 아닌 보통 자바 프로젝트에서는 문제없이 실행되는 것을 확인하고 그대로 사용한 것입니다만(파일시스템은 당연히 자바용으로 썼습니다. htmlcleaner 부분을 그대로 쓴 거죠.) 오작동을 보이는 이유를 모르겠습니다. 혹시 어딘가 제가 놓치고 있는 부분이 있다면 알려주시면 감사하겠습니다.



