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