java - 运行新的 LibGDX 项目时出现 "File not found"

标签 java libgdx

我尝试学习 LibGDX,我安装了列出的所有软件 here在新格式化的 mac OS X Maverick 上使用新的 Eclipse 4.3。

一切顺利,重新启动后,我下载并执行 gdx-setup.jar,填写表格,然后导入 Eclipse。

当我尝试运行桌面时,没有错误,没有警告。 (右键桌面项目,Run As -> Java Application)。

我收到了这个错误

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)

我开始做一些debug,这里我只修改导入生成的原始代码。

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 及其设置有什么问题?

最佳答案

来自 libgdx 维基

当您运行桌面项目时

The application will fail the first time. Open the Run Configuration you just created and set the working directory to the android/assets/ directory!

将您的桌面项目链接到 android assets 文件夹?

转到 Run => Run Configurations.. => 选择 DesktopLauncher,Arguments Tab => Working Directory => Others 然后浏览到yourproject-android/assets/并点击 Apply => Run

enter image description here

关于java - 运行新的 LibGDX 项目时出现 "File not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822767/

相关文章:

Java - 图像闪烁

java - 导入gradle项目不会复制内容

java - libgdx box2d body - 为什么到达接触点位置后 body 会摇晃?

java - 防止 Redshift SQL 注入(inject)

java - Java NanoHTTPD 服务 HTTP Live Streaming 的范围错误

java - 如果在 libgdx 中单击了 box2d 主体,如何注册?

android - LibGDX:如何模拟按下 Android 后退按钮

java - 防止 LibGDX 游戏在暂停时完全停止

java - 如何设置PDFBox的字符编码

java - 如何将标签和文本左对齐