Estoy tratando de aprender LibGDX, instalo todo el software enumerado aquí con un nuevo Eclipse 4.3 en un Mac OS X Maverick con formato nuevo.
Todo va bien, después de un reinicio, descargo y ejecuto gdx-setup.jar, completo el formulario e importo a Eclipse.
Sin error, sin advertencia, cuando intento ejecutar el escritorio. (Haga clic derecho en el proyecto de escritorio, Ejecutar como -> Aplicación Java).
Tengo este error
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)
Encontré muchos problemas similares aquí, los probé todos sin ningún buen resultado ... Anoche encontré esto , muy bueno, tengo la última versión de Java 1.8, una Mac y Eclipse encaja perfectamente ...
Pero sin éxito, lo intento con Java 1.6 y 1.7, Siempre el mismo error (No se encontró ningún archivo, me quedé con Java 1.7)
Empiezo a hacer alguna depuración, aquí mi única modificación del código original generado por la importación.
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();
}
}
Lo extraño es que pathLocal es igual a "". ¿Es normal que Gdx.files.getLocalStoragePath () no devuelva nada (cadena vacía)?
También el
imgExternal = new Texture(Gdx.files.external("/Desktop/badlogic.jpg"));
Funciona genial. solo el local da el error, también isLocal y isExternal devuelve verdadero.
Y trato de una gran cantidad de combinaciones, como /assets/data/badlogic.jpg
, /assets/badlogic.jpg
, /data/badlogic.jpg
, data/badlogic.jpg
, y badlogic.jpg
.
La imagen badlogic.jpg está ahí y la puse en varios lugares para estar seguro.
Y ahora, la razón por la que estoy aquí para pedir ayuda es que simplemente intento el mismo paso en una PC y todo funciona muy bien.
¿Qué pasa con mi nueva mac y su configuración?
Respuestas:
De libgdx wiki
Cuando ejecuta Desktop Project
vincular su proyecto de escritorio a la carpeta de activos de Android?
Vaya a Ejecutar => Ejecutar configuraciones .. => elija DesktopLauncher , pestaña Argumentos => Directorio de trabajo => Otros, luego busque su proyecto-android / assets / y haga clic en Aplicar => Ejecutar
fuente
Para aquellos de nosotros que usamos Android Studio o IntelliJ IDEA, debe seguir estos pasos:
Seleccione Ejecutar -> Editar configuraciones en el menú
En el cuadro de texto "Directorio de trabajo:", agregue "/ android / assets" a la ruta.
Tenga en cuenta que si ejecuta tareas con gradle, esto no es un problema. Los archivos gradle.build están configurados para usar la carpeta de activos del módulo de Android.
fuente
Tenga en cuenta que las respuestas anteriores no funcionarán para los usuarios que desmarcaron la casilla "Android" en la configuración. Realmente debería haber una carpeta de activos predeterminada instalada para aquellos a quienes no les importa la implementación para Android.
fuente
Para aquellos que usan Intellij IDEA:
fuente
Así es como lo arregla correctamente sin jugar con el directorio de trabajo:
El problema es que la carpeta de activos no está marcada correctamente como
resources
directorio para la compilación de Gradle. Para solucionar esto, debe agregar la siguiente línea en el./core/build.gradle
archivo de compilación:Mi archivo después de una configuración limpia con la versión reciente de libGDX se ve así:
fuente
Utilizo una solución diferente.
En lugar de crear una configuración de ejecución de la aplicación, cree una configuración de compilación de Gradle. La tarea es
desktop:run
. Una vez que se ejecuta, el juego (debería) iniciarse y mantenerse vivo sin fallar, y se deberían encontrar los recursos.No estoy exactamente seguro de por qué, pero cuando se ejecuta una tarea de Gradle de esta manera, se encuentran los recursos. Cuando se utiliza la configuración de ejecución de una aplicación (sin modificaciones como la respuesta aceptada actualmente), se bloquea porque no puede encontrar los recursos.
fuente
No tengo proyecto de Android. Mi solución es agregar la carpeta de activos a Java Build Path-> Libraries como una carpeta de clase. Además, verifique la carpeta de activos en Java Build Path-> Order and Export para incluir esto en otros proyectos.
fuente
Puede verificar la ruta de los activos en el directorio de trabajo o los recursos vinculados. Una vez hecho esto, verifique el archivo que está cargando. Por último, limpie y actualice el proyecto y disfrute.
fuente
Tuve el mismo problema en IntelliJ, y no había generado el proyecto libgdx para Android (la opción de Android no estaba marcada como marcada) y todavía recibía el mismo error. En lugar de vincular el directorio de trabajo a "/ android / assets /", lo vinculé a " / core / assets " y funcionó bien para mí.
fuente