"Файл не найден" при запуске нового проекта LibGDX


Я пытаюсь изучить LibGDX, я устанавливаю все перечисленные программы здесь С Новым Eclipse 4.3 на новом отформатированном mac OS X Maverick.

все идет гладко, после перезагрузки я загружаю и выполняю gdx-setup.jar, заполните форму и импортируйте в Eclipse.

нет ошибки, нет предупреждения, когда я пытаюсь запустить рабочий стол. (Щелкните правой кнопкой мыши проект рабочего стола, запустите от имени - > приложение Java).

я получил эту ошибку

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.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)

I нашел много подобных вопросов здесь, я пробую их все без какого-либо хорошего результата... Вчера вечером я нашел этой, очень круто у меня есть последняя Java 1.8, mac и Eclipse идеально подходят...

но без успеха, я пытаюсь с Java 1.6 и 1.7, всегда одна и та же ошибка (файл не найден, я сохранил Java 1.7)

Я начинаю делать некоторую отладку, здесь моя единственная модификация исходного кода, сгенерированного импортом.

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();
    }
}

странно, что pathLocal равен к."" Это нормально для Gdx.файлы.getLocalStoragePath () чтобы ничего не возвращать (пустая строка)?

и

imgExternal = new Texture(Gdx.files.external("/Desktop/badlogic.jpg"));

работает отлично. только локальный дает ошибку, также isLocal, и isExternal возвращает true.

и я пробую много комбинаций, как /assets/data/badlogic.jpg,/assets/badlogic.jpg,/data/badlogic.jpg,data/badlogic.jpg и badlogic.jpg.

изображение badlogic.jpg это есть и я положил его в нескольких местах, чтобы быть уверенным.

а теперь причина, по которой я здесь помощь в том, что я просто пробую все тот же шаг на ПК, и все отлично работает.

что не так с моим новым mac и его настройкой?

7 111

7 ответов:

из libgdx wiki

при запуске Desktop Project

приложение не будет работать в первый раз. Откройте только что созданную конфигурацию запуска и установите рабочий каталог в каталог android/assets/!

ссылка на ваш проект стола в папке assets в Android?

на выполнить=> "Выполнить Конфигурации".. => выбрать DesktopLauncher Вкладка Аргументы => Рабочий Каталог = > Другие затем перейдите к yourproject-android / assets/ и нажмите применить=>выполнить

enter image description here

для тех из нас, кто использует Android Studio или IntelliJ IDEA, вам необходимо выполнить следующие действия:

  1. выберите Выполнить - > изменить конфигурации из меню

  2. в текстовом поле" рабочий каталог: "добавьте" /android/assets " к пути.

обратите внимание, что если вы выполняете задачи с gradle, это не проблема. В градля.файлы сборки настроены для использования папки assets из модуля android.

обратите внимание, что предыдущие ответы не будут работать для пользователей, которые сняли флажок "Android" при настройке. Там действительно должна быть папка активов по умолчанию установлена для тех, кто не заботится о развертывании для Android.

для тех, кто использует Intellij IDEA:

  1. Run - > Edit Configuration
  2. на левой стороне выберите: приложение - > DesktopLauncher
  3. на вкладке " конфигурация "в разделе" рабочий каталог " выберите свой путь android/assets

Я использую другое решение.

вместо создания конфигурации запуска приложения создайте конфигурацию сборки Gradle. Задача -desktop:run. Как только он будет выполнен, игра (должна) запуститься и остаться в живых без сбоев, а ресурсы должны быть найдены.

Я не совсем уверен, почему, но когда задача Gradle выполняется так, ресурсы найдены. Когда используется конфигурация запуска приложения (без изменений, таких как текущий принятый ответ) он падает, потому что он не может найти ресурсы.

У меня нет проекта Android. Мое решение-добавить папку активов в путь сборки Java- > библиотеки в качестве папки класса. Дополнительно проверьте папку asset в Java Build Path - >Order и Export, чтобы включить ее в другие проекты.

вы можете проверить путь активов в рабочем каталоге или связанных ресурсов .После завершения проверьте файл, который вы загружаете. наконец очистите и обновите проект и наслаждайтесь.