현재 LibGDX 게임을 작성 중이며 스프레드 시트 용 XML 파일을 열어야합니다. 불행히도 파일을 열려고하면 IOException
이 표시됩니다. 파일이 올바른 위치에 있고 프로젝트가 정리되고 최신 상태입니다.Android에서 LibGDX를 사용하여 파일을 열 수 없습니다.
다음과 같은 키커가 있습니다. LibGDX는 동일한 디렉토리에 이미지 파일을 열고 표시하며 사실 자체 XML 파일을 가져옵니다. FileHandle
개체 (나는 그것 logcat 크기를 가지고 그것을 일치). 그러나 SAX 파서로 파일을 보내면 파일을 열 수 없다는 메시지가 나오면 예외가 발생합니다.
여기 ClipSprite
클래스의 내부 코드의 문제 라인이다 : 여기
private void parseConfigFile(FileHandle file) throws ParserConfigurationException, SAXException
{
//Use a SAX parser to get the data out of the XML file.
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLConfigHandler handler = new XMLConfigHandler();
//Parse through the document
try
{
parser.parse(file.path(),handler); //IOException here
}
가 그리고 내가 주 LibGDX 클래스의 create
방식의 게임에서 파일을 선택하는 코드입니다
//This loads a png file
texture = new Texture(Gdx.files.internal("data/graphics/CDE1/CDE1.png"));
texture.setFilter(TextureFilter.Linear, TextureFilter.Linear);
TextureRegion region = new TextureRegion(texture, 0, 0, 512, 275);
//Here I load the xml file and it tells me how many bytes it is
Gdx.app.error("File","xml bytes:"+Gdx.files.internal("data/graphics/CDE1/CDE1.xml").length());
//Here I load the same file and it crashes
//Note that it looks in the subdirectory and finds /CDE1.xml properly
animation = new ClipSprite("data/graphics/CDE1");
logcat 오류 :
java.io.IOException: Couldn't open data/graphics/CDE1/CDE1.xml
왜 ide할까요? 파일을 ntify, 아직 열 수 없다는 IOExceptions가 표시됩니까? 도움을 주셔서 감사합니다. 필요한 경우 더 자세한 정보를 제공해 드리겠습니다. 은 "내부"파일을 판독으로, Gdx.files.internal()
대신,
파일을로드 할 수 Gdx.files.local()
을 시도해보십시오
IOException 메시지의 파일 경로가 너무 짧게 보입니다. 그 시점에서 더 긴 접두사가 있어야한다고 생각합니다. 내부 파일 또한 classpath 검색에 약간의 불안정합니다. "Gdx.files.local()"을 대신 사용합니까? –
파일의 내용을 구문 분석하려고하는 위치에서 파일의 길이를 성공적으로 검사 한 파일 핸들과 동일한 파일 핸들이 있습니까? –
@RodHyde FileHandle은 올바른 바이트를 가져옵니다. SAX Parser는 File을 사용하지만 (FileHandle은 LibGDX 객체이므로) FileHandle.file()을 제공합니다. – GraphicsMuncher