現在LibGDXゲームを作成しており、スプライトシートのXMLファイルを開く必要があります。残念ながら、ファイルを開こうとすると、IOException
と表示されます。ファイルは適切な場所にあり、プロジェクトはきれいで最新のものなどあります。AndroidはLibGDXを使用してファイルを開くことができません
LibGDXは同じディレクトリに画像ファイルを開いて表示しますが、実際にはFileHandle
のXMLファイルを取得しますオブジェクト(私はサイズを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
}
そして、ここでは、私が
//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");
メインLibGDXクラスの
create
方法でゲーム内のファイルを選択するコードがあります
logcatエラー:
java.io.IOException: Couldn't open data/graphics/CDE1/CDE1.xml
なぜそれが可能ですかideファイルをネーティファイアしても、それを開くことができないというIOExceptionをまだ受けていますか?助けてくれてありがとう。必要に応じてさらに詳しい情報を提供するつもりだ。他の誰かがこのまたは類似した何かにぶつかる場合には1つだけの答えの中に上記のすべてのコメントを合体する
IOExceptionメッセージのファイルパスが短すぎます。その時点で長い接頭辞を持つべきだと私は思います...内部ファイルはクラスパス検索でもちょっと怪しいです。代わりに "Gdx.files.local()"を使用していますか? –
ファイルの内容を解析しようとするファイルハンドルの長さが正常に確認された場所と同じですか? –
@RodHyde FileHandleは正しいバイトを取得します。 SAX ParserはFileを取りますが(FileHandleはLibGDXのものです)、私はFileHandle.file()を与えます。 – GraphicsMuncher