Próbuję się nauczyć LibGDX, instaluję wszystkie wymienione tutaj programy z nowym Eclipse 4.3 na świeżo sformatowanym Mac OS X Maverick.
Wszystko idzie gładko, po ponownym uruchomieniu pobieram i uruchamiam plik gdx-setup.jar, wypełniam formularz i importuję do Eclipse.
Żadnego błędu, żadnego ostrzeżenia, gdy próbuję uruchomić pulpit. (Kliknij prawym przyciskiem myszy projekt pulpitu, Uruchom jako -> Aplikacja Java).
Mam ten błąd
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: badlogic.jpg
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
at com.badlogic.gdx.graphics.Texture.load(Texture.java:130)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:121)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:100)
at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:92)
at com.diesel.bugs.DieselBugs.create(DieselBugs.java:21)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:136)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: badlogic.jpg (Local)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:134)
at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:218)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137)
Znalazłem tutaj wiele podobnych problemów, próbuję je wszystkie bez dobrego wyniku ... Znalazłem to ostatniej nocy , bardzo fajnie, mam najnowszą Javę 1.8, mac, a Eclipse pasuje idealnie ...
Ale bez sukcesu, próbuję z Javą 1.6 i 1.7, Zawsze ten sam błąd (Nie znaleziono pliku, Zachowałem Javę 1.7)
Zaczynam trochę debugować, tutaj moja jedyna modyfikacja oryginalnego kodu wygenerowanego przez import.
package com.diesel.bugs;
import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
public class DieselBugs extends ApplicationAdapter {
SpriteBatch batch;
Texture imgExternal,imgLocal;
@Override
public void create () {
batch = new SpriteBatch();
String pathLocal = Gdx.files.getLocalStoragePath();
String pathExternal = Gdx.files.getExternalStoragePath();
Boolean isExternal = Gdx.files.isExternalStorageAvailable();
Boolean isLocal = Gdx.files.isLocalStorageAvailable();
imgExternal = new Texture(Gdx.files.external("/Desktop/badlogic.jpg"));
imgLocal = new Texture(Gdx.files.local("badlogic.jpg"));
}
@Override
public void render () {
Gdx.gl.glClearColor(1, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
batch.begin();
batch.draw(imgExternal, 0, 0);
batch.end();
}
}
Dziwne jest to, że pathLocal jest równe „”. Czy to normalne, że Gdx.files.getLocalStoragePath () nic nie zwraca (pusty ciąg)?
Również
imgExternal = new Texture(Gdx.files.external("/Desktop/badlogic.jpg"));
Działa świetnie. tylko lokalna wartość daje błąd, również isLocal i isExternal zwraca true.
I spróbuj wiele kombinacji, jak /assets/data/badlogic.jpg
, /assets/badlogic.jpg
, /data/badlogic.jpg
, data/badlogic.jpg
, i badlogic.jpg
.
Obraz badlogic.jpg jest tam i dla pewności umieściłem go w wielu miejscach.
A teraz powodem, dla którego jestem tu po pomoc, jest to, że po prostu próbuję tego samego kroku na komputerze PC i wszystko działa świetnie.
Co jest nie tak z moim nowym komputerem Mac i jego ustawieniem?
Odpowiedzi:
Z wiki libgdx
Po uruchomieniu programu Desktop Project
połączyć projekt na komputer z folderem zasobów Androida?
Idź do Run => Run Configurations .. => wybierz DesktopLauncher , Arguments Tab => Working Directory => Others, a następnie przejdź do yourproject-android / asset / i kliknij Zastosuj => Uruchom
źródło
Dla tych z nas, którzy używają Android Studio lub IntelliJ IDEA, musisz wykonać następujące kroki:
Wybierz z menu Uruchom -> Edytuj konfiguracje
W polu tekstowym „Katalog roboczy:” dodaj „/ android / asset” do ścieżki.
Pamiętaj, że jeśli wykonujesz zadania za pomocą gradle, nie stanowi to problemu. Pliki gradle.build są skonfigurowane do korzystania z folderu zasobów z modułu Android.
źródło
Pamiętaj, że poprzednie odpowiedzi nie będą działać w przypadku użytkowników, którzy odznaczyli pole „Android” podczas konfiguracji. Naprawdę powinien być zainstalowany domyślny folder zasobów dla tych, którzy nie dbają o wdrażanie na Androida.
źródło
Dla osób używających Intellij IDEA:
źródło
Oto jak to naprawić poprawnie, nie bawiąc się katalogiem roboczym:
Problem polega na tym, że folder zasobów nie jest poprawnie oznaczony jako
resources
katalog dla kompilacji gradle. Aby to naprawić, musisz dodać następujący wiersz w./core/build.gradle
pliku kompilacji:Mój plik po czystej instalacji z najnowszą wersją libGDX wygląda następująco:
źródło
Używam innego rozwiązania.
Zamiast tworzyć konfigurację uruchamiania aplikacji, utwórz konfigurację kompilacji Gradle. Zadanie jest
desktop:run
. Po wykonaniu gra (powinna) uruchomić się i pozostać przy życiu bez awarii, a zasoby powinny zostać znalezione.Nie jestem dokładnie pewien dlaczego, ale gdy zadanie Gradle jest uruchamiane w ten sposób, zasoby są znalezione. Gdy używana jest konfiguracja uruchamiania aplikacji (bez modyfikacji, takich jak aktualnie zaakceptowana odpowiedź), ulega awarii, ponieważ nie może znaleźć zasobów.
źródło
Nie mam projektu na Androida. Moim rozwiązaniem jest dodanie folderu zasobów do ścieżki budowania Java-> Biblioteki jako folderu klas. Dodatkowo sprawdź folder zasobów w ścieżce budowania Java-> Zamów i eksportuj, aby uwzględnić go w innych projektach.
źródło
Możesz sprawdzić ścieżkę zasobów w katalogu roboczym lub połączonych zasobach. Po zakończeniu sprawdź, czy plik, który ładujesz. Na koniec wyczyść i odśwież projekt i ciesz się.
źródło
Miałem ten sam problem w IntelliJ i nie wygenerowałem projektu libgdx dla Androida (opcja Android nie została zaznaczona jako zaznaczona) i nadal otrzymywałem ten sam błąd. Zamiast łączyć katalog roboczy z „/ android / asset /”, połączyłem go z „ / core / asset ” i działało dobrze.
źródło