2016-12-23 2 views
0

Ich habe ein Desktop-Spiel in Eclipse mit Libgdx erstellt. Das Spiel läuft super in Eclipse, aber die FileHandle list() Methode funktioniert nicht, wenn sie in eine JAR-Datei exportiert wird. Ich habe die folgenden Codezeilen:Libgdx FileHandle list() -Methode funktioniert nicht in JAR-Datei

songFiles = Gdx.files.internal("./bin/" + "songs/").list(); 
System.out.println(songFiles[0]); 

Wieder in Eclipse druckt die Datei location.However wenn sie auf ein Glas exportiert, erhalte ich eine java.lang.ArrayIndexOutOfBoundsException: 0 Fehler.

Cannot export default Java libGDX project as a jar from Eclipse sieht ähnlich aus wie das Problem, das ich

+1

Mögliche Duplikate von [Was verursacht eine java.lang.ArrayIndexOutOfBoundsException und wie verhindere ich das?] (Http://stackoverflow.com/questions/5554734/what-causes-a-java-lang-arrayindexoutofboundexception-and- how-do-i-prevent-it) – ItamarG3

+1

Nein, das Problem ist, dass die Methode list() nicht so funktioniert wie in Eclipse. Ich denke, dass es etwas mit der Dateistruktur zu tun hat, wenn ein Projekt in eine JAR-Datei exportiert wird. –

+0

Ich wollte etwas schreiben, kann aber nicht herausfinden, was genau das Problem ist. –

Antwort

0

habe es sagt, dass Sie die Liste oder ein Array erstellt, aber u haben es nicht mit einer Länge initialisieren. Deshalb haben Sie 0 am Ende der Fehlermeldung.

+0

Dies ist nicht die Ursache, da das Array von der Methode list() in der Dateiklasse fileHandle von libgdx bereitgestellt wird (https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/files/FileHandle). html). Das erklärt auch nicht, warum es funktioniert, wenn man in Eclipse läuft, da Eclipse das auffängt. –

0

Da die Methode list() nicht für Desktop-Anwendungen verwendet werden kann, werde ich dieses Problem lösen, indem ich die Dateinamen im Verzeichnis songs in eine Textdatei lese und schreibe.

Verwandte Themen