새 LibGDX 프로젝트를 실행할 때 "파일을 찾을 수 없음"


115

LibGDX를 배우려고 노력하고 있으며 여기 에 나열된 모든 소프트웨어를 새로운 형식의 Mac OS X Maverick에 새로운 Eclipse 4.3과 함께 설치합니다 .

재부팅 후 모든 것이 원활하게 진행되고 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$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)

나는 여기에서 비슷한 문제를 많이 발견했습니다. 좋은 결과없이 모두 시도해 보았습니다. 어젯밤 나는 이것을 발견 했습니다 . 아주 멋지네요. 최신 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.files.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가 있고 확실히하기 위해 여러 곳에 배치했습니다.

이제 제가 도움을 청하는 이유는 PC에서 모든 단계를 동일하게 시도하고 모든 것이 잘 작동하기 때문입니다.

새 Mac에 무엇이 문제이며 설정되어 있습니까?


이상하네요. 자산을 추가 한 후 Eclipse에서 android-project를 새로 고쳤습니까? android-project의 asset-folder에 새 자산을 추가 한 다음 Eclipse에서 Android 프로젝트를 새로 고치는 것을 잊었을 때 많은 일이 발생하기 때문에 이미지가 없다는 오류가 발생합니다 ...
— florianbaethge 2014

답변:


230

libgdx 위키에서

Desktop Project를 실행할 때

응용 프로그램은 처음에 실패합니다. 방금 만든 Run Configuration을 열고 작업 디렉토리를 android / assets / 디렉토리로 설정하십시오!

데스크톱 프로젝트를 Android 자산 폴더에 연결 하시겠습니까?

로 이동하여 실행 => 실행 구성 .. => 선택 DesktopLauncher는 , 인수 탭 => 작업 디렉토리 => 기타 다음에 찾아 프로젝트 _ - 안드로이드 / 자산 / 클릭 적용 => 실행

여기에 이미지 설명 입력


또한 동일한 문제로 다른 사람을 돕고 동일한 디렉토리가 Android 빌드에서 작동하도록하려면 Android / assets 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 Built path를 클릭 한 다음 Add를 선택해야합니다.
— lebill

10
저도 그렇게 했어요. LibGDX가 처음부터이 문제를 가지고 있다는 것은 참으로 부끄러운 일입니다. 그것은 훌륭한 시스템이지만 그런 것들은 인내심이 거의없는 개발자들을 놀라게 할 것입니다.
— 리처드

대박! libgdx가 이것을 설명하는 샘플 프로젝트의 텍스트 필드로 이미지를 대체하는 것이 더 합리적이지 않습니까? 나는 어쨌든 여기에 간단한 구글 검색 리드 모두를 생각하지만 아무도 덜, 그것은 만남에 이상한 일이 없다
— 카이 청

1
android / assets 폴더가없는 경우 바탕 화면 / 자산 폴더를 동일한 방식으로 설정하십시오.
— Fredrik Andersson

1
이것은 해결책이 아니라 해결 방법입니다. 대부분의 상황에서 작동하지만 모든 상황에서 작동하지는 않습니다. 예를 들어 Desktop 모듈에서 텍스처 아틀라스를 생성하려는 경우 경로를 다시 계산해야하며 기본적으로 Desktop 모듈에 상대적입니다.
— Fran Marzoa

75

Android Studio 또는 IntelliJ IDEA를 사용하는 경우 다음 단계를 따라야합니다.

  1. 메뉴에서 실행-> 구성 편집을 선택하십시오.

  2. "Working Directory :"텍스트 상자에서 경로에 "/ android / assets"를 추가합니다.

gradle로 작업을 실행하는 경우 이것은 문제가되지 않습니다. gradle.build 파일은 android 모듈의 assets 폴더를 사용하도록 구성됩니다.


13

설정에서 'Android'체크 박스를 선택 취소 한 사용자에게는 이전 답변이 적용되지 않습니다. Android 배포에 신경 쓰지 않는 사람들을 위해 실제로 기본 자산 폴더가 설치되어 있어야합니다.


5
정확하고 정확합니다. 데스크탑 작업 디렉토리를 core의 assets 폴더로 설정하면 저에게 효과적이었습니다.
— naftalimich

@naftalimich 예, 자산이 정말로 핵심에 있어야한다고 생각합니다. 나는 그들이 그것을 한 이유를 이해합니다. 안드로이드 gradle 플러그인이 거기에서 그들을 원하고 각 빌드 / 동기화 문제를 다루는 모든 것을 복사하고 싶지 않기 때문입니다. 그러나 이것은 실제로 해결되어야합니다.
— EntangledLoops

11

Intellij IDEA를 사용하는 경우 :

  1. 실행-> 구성 편집
  2. 왼쪽에서 응용 프로그램-> DesktopLauncher를 선택합니다.
  3. "구성"-탭에서 "작업 디렉토리"아래에서 안드로이드 / 자산 경로를 선택합니다.

3
다음과 같이 언급 할 수 있습니다. 1)이를 위해서는 먼저 데스크톱 구성을 만들어야합니다. 2) 원본 프로젝트를 생성 할 때 Android를 선택했다고 가정합니다. 3)이 답변은 이미 IntelliJ IDE에 구축 된 Android Studio에 대한 지침으로 위의 Code-Apprentice에서 제공했습니다.
— EntangledLoops

6

이것은 작업 디렉토리를 가지고 놀지 않고 올바르게 수정하는 방법입니다.

문제는 자산 폴더가 resourcesgradle 빌드의 디렉토리 로 올바르게 표시되지 않았다는 것 입니다. 이 문제를 해결하려면 ./core/build.gradle빌드 파일 에 다음 줄을 추가해야 합니다.

sourceSets.main.resources.srcDirs = [ "assets/" ]

최신 libGDX 버전으로 새로 설정 한 후 내 파일은 다음과 같습니다.

apply plugin: "java"

sourceCompatibility = 1.6
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'

sourceSets.main.java.srcDirs = [ "src/" ]
sourceSets.main.resources.srcDirs = [ "assets/" ]

eclipse.project {
    name = appName + "-core"
}

1

다른 솔루션을 사용합니다.

애플리케이션 실행 구성을 만드는 대신 Gradle 빌드 구성을 만듭니다. 작업은 desktop:run입니다. 일단 실행되면 게임이 실행되고 충돌없이 살아남 아야하며 리소스를 찾아야합니다.

이유는 정확히 모르겠지만 Gradle 작업이 이와 같이 실행되면 리소스가 발견됩니다. 응용 프로그램 실행 구성이 사용되면 (현재 허용 된 답변과 같은 수정없이) 리소스를 찾을 수 없기 때문에 충돌합니다.


0

Android 프로젝트가 없습니다. 내 솔루션은 자산 폴더를 Java 빌드 경로-> 라이브러리에 클래스 폴더로 추가하는 것입니다. 또한 Java Build Path-> Order and Export에서 자산 폴더를 확인하여 다른 프로젝트에 포함 시키십시오.


0

작업 디렉토리 또는 연결된 리소스에서 자산의 경로를 확인할 수 있습니다. 완료 후로드중인 파일을 확인합니다. 마지막으로 프로젝트를 정리하고 새로 고치고 즐기십시오.


0

IntelliJ에서 동일한 문제가 발생했으며 Android 용 libgdx 프로젝트를 생성하지 않았으며 (Android 옵션이 선택되지 않은 것으로 표시되지 않음) 아직 동일한 오류가 발생했습니다. 작업 디렉토리를 "/ android / assets /"에 연결하는 대신 " / core / assets "에 연결하면 잘 작동했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.