J'essaye d'apprendre LibGDX, j'installe tous les logiciels listés ici avec un nouvel Eclipse 4.3 sur un Mac OS X Maverick fraîchement formaté.
Tout se passe bien, après un redémarrage, je télécharge et exécute le gdx-setup.jar, remplis le formulaire et l'importe dans Eclipse.
Aucune erreur, aucun avertissement, lorsque j'essaye d'exécuter le bureau. (Cliquez avec le bouton droit sur le projet de bureau, Exécuter en tant que -> Application Java).
J'ai cette erreur
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)
J'ai trouvé beaucoup de problèmes similaires ici, je les essaie tous sans aucun bon résultat ... Hier soir, j'ai trouvé cela , très cool, j'ai le dernier Java 1.8, un mac et Eclipse s'adaptent parfaitement ...
Mais pas de succès, j'essaye avec Java 1.6 et 1.7, toujours la même erreur (aucun fichier trouvé, j'ai gardé Java 1.7)
Je commence à faire du débogage, ici ma seule modification du code d'origine généré par l'importation.
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();
}
}
La chose étrange est que pathLocal est égal à "". Est-il normal que Gdx.files.getLocalStoragePath () ne renvoie rien (chaîne vide)?
Également
imgExternal = new Texture(Gdx.files.external("/Desktop/badlogic.jpg"));
Fonctionne très bien. seul le local donne l'erreur, isLocal également et isExternal renvoie true.
Et comme je l' ai essayé un bon nombre de combinaisons, /assets/data/badlogic.jpg
, /assets/badlogic.jpg
, /data/badlogic.jpg
, data/badlogic.jpg
, et badlogic.jpg
.
L'image badlogic.jpg est là et je l'ai mise à plusieurs endroits pour être sûr.
Et maintenant, la raison pour laquelle je suis ici pour obtenir de l'aide est que j'essaie simplement la même étape sur un PC et tout fonctionne très bien.
Quel est le problème avec mon nouveau mac et son paramétrage?
Réponses:
Depuis le wiki de libgdx
Lorsque vous exécutez Desktop Project
liez votre projet de bureau au dossier des ressources Android?
Allez dans Exécuter => Exécuter les configurations .. => choisissez DesktopLauncher , Onglet Arguments => Répertoire de travail => Autres puis accédez à yourproject-android / assets / et cliquez sur Appliquer => Exécuter
la source
Pour ceux d'entre nous qui utilisent Android Studio ou IntelliJ IDEA, vous devez suivre ces étapes:
Sélectionnez Exécuter -> Modifier les configurations dans le menu
Dans la zone de texte «Répertoire de travail:», ajoutez «/ android / assets» au chemin.
Notez que si vous exécutez des tâches avec gradle, ce n'est pas un problème. Les fichiers gradle.build sont configurés pour utiliser le dossier assets du module android.
la source
Notez que les réponses précédentes ne fonctionneront pas pour les utilisateurs qui ont décoché la case "Android" lors de la configuration. Il devrait vraiment y avoir un dossier d'actifs par défaut installé pour ceux qui ne se soucient pas du déploiement pour Android.
la source
Pour ceux qui utilisent Intellij IDEA:
la source
C'est ainsi que vous le corrigez correctement sans jouer avec le répertoire de travail:
Le problème est que le dossier de ressources n'est pas correctement marqué comme
resources
répertoire pour la génération gradle. Pour résoudre ce problème, vous devez ajouter la ligne suivante dans le./core/build.gradle
fichier de construction:Mon fichier après une nouvelle configuration avec la version récente de libGDX ressemble à ceci:
la source
J'utilise une solution différente.
Au lieu de créer une configuration d'exécution d'application, créez une configuration de build Gradle. La tâche est
desktop:run
. Une fois qu'il est exécuté, le jeu (devrait) se lancer et rester en vie sans planter, et les ressources devraient être trouvées.Je ne sais pas exactement pourquoi, mais lorsqu'une tâche Gradle est exécutée ainsi, les ressources sont trouvées. Lorsqu'une configuration d'exécution d'application est utilisée (sans modifications comme la réponse actuellement acceptée), elle se bloque car elle ne trouve pas les ressources.
la source
Je n'ai pas de projet Android. Ma solution consiste à ajouter le dossier d'actif au chemin de construction Java-> Bibliothèques en tant que dossier de classe. Vérifiez également le dossier des ressources dans Chemin de construction Java-> Trier et exporter pour l'inclure dans d'autres projets.
la source
Vous pouvez vérifier le chemin des actifs dans le répertoire de travail ou les ressources liées. Après avoir terminé, vérifiez le fichier que vous chargez. Enfin, nettoyez et actualisez le projet et profitez-en.
la source
J'ai eu le même problème dans IntelliJ, et je n'avais pas généré le projet libgdx pour Android (l'option Android n'était pas marquée comme cochée) et j'obtenais encore la même erreur. Au lieu de lier le répertoire de travail à "/ android / assets /", liez-le à " / core / assets " et cela a bien fonctionné pour moi.
la source