web-dev-qa-db-ja.com

新しいLibGDXプロジェクトの実行時に「ファイルが見つかりません」

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)

私はここで同様の問題をたくさん見つけました、良い結果なしですべて試してみます...昨夜見つけました this 、とてもクールな最新の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.jpgdata/badlogic.jpgbadlogic.jpgなど、さまざまな組み合わせを試します。

イメージbadlogic.jpgがあり、確認のために複数の場所に配置しました。

そして今、私が助けを求めている理由は、PCで同じステップをすべて試してみて、すべてがうまくいくからです。

私の新しいMacの何が問題になっていて、それが設定されていますか?

114
lebill

Libgdx wikiから

デスクトッププロジェクトを実行するとき

アプリケーションは最初に失敗します。作成した実行構成を開き、作業ディレクトリをAndroid/assets /ディレクトリに設定します!

デスクトッププロジェクトをAndroidアセットフォルダーにリンクしますか?

Run => Run Configurations .. => DesktopLauncher、Arguments Tab => Working Directory => Othersを選択し、yourproject-Androidを参照します。/assets /をクリックして適用 => 実行

enter image description here

230
Phonbopit

Android St​​udioまたはIntelliJ IDEAを使用している場合は、次の手順に従う必要があります。

  1. メニューから「実行」->「構成の編集」を選択します

  2. [作業ディレクトリ:]テキストボックスで、パスに「/ Android/assets」を追加します。

Gradleでタスクを実行する場合、これは問題ではないことに注意してください。 gradle.buildファイルは、Androidモジュールのアセットフォルダーを使用するように構成されています。

73
Code-Apprentice

セットアップで「Android」ボックスをオフにしたユーザーに対しては、以前の回答は機能しないことに注意してください。 Androidへのデプロイを気にしない人のために、デフォルトのアセットフォルダーを実際にインストールする必要があります。

13
EntangledLoops

Intellij IDEAを使用している場合:

  1. 実行->構成の編集
  2. 左側で、「アプリケーション」->「DesktopLauncher」を選択します
  3. [設定]タブで、[作業ディレクトリ]の下にあるAndroid /アセットパスを選択します
11
Sku Sku

これは、作業ディレクトリをいじらずに適切に修正する方法です。

問題は、アセットフォルダーがgradleビルドのresourcesディレクトリとして正しくマークされていないことです。これを修正するには、./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"
}
5
Unchained

別のソリューションを使用します。

アプリケーション実行構成を作成する代わりに、Gradleビルド構成を作成します。タスクはdesktop:runです。実行されると、ゲームが起動し、クラッシュせずに生き続ける必要があり、リソースが見つかるはずです。

理由は正確にはわかりませんが、Gradleタスクをこのように実行すると、リソースが見つかります。アプリケーションの実行構成を使用すると(現在受け入れられている答えのような変更なしで)、リソースが見つからないためクラッシュします。

1
Zoe

作業ディレクトリまたはリンクされたリソースでアセットのパスを確認できます。完了したら、ロードするファイルを確認します。最後に、プロジェクトをクリーンアップして更新します。

IntelliJでも同じ問題があり、Androidのlibgdxプロジェクトを生成していませんでした(Androidオプションにチェックマークが付いていませんでした)が、まだ同じエラーが発生していました。作業ディレクトリを「/ Android/assets /」にリンクする代わりに、「-/ core/assets」にリンクすると、うまくいきました。

0
Salek

Androidプロジェクトがありません。私の解決策は、アセットフォルダーをJava Build Path-> Librariesにクラスフォルダーとして追加することです。さらに、Java Build Path-> Order and Exportのアセットフォルダーを確認して、これを他のプロジェクトに含めます。

0
Juanjo