使用IntelliJ IDEA找不到文件异常

时间:2014-07-16 07:38:55

标签: java intellij-idea gradle libgdx

我有Gradle项目和2个IDE:NetBeans和IntelliJ。 NetBeans与此项目完美配合,未发现错误。 但同一项目中的IntelliJ抛出异常:

[Assets] error: com.badlogic.gdx.utils.GdxRuntimeException: File not found: ./images/enemy.atlas (Internal)

这是Java类:

public class Assets {           
    public static AssetManager assetManager;           
    public Assets() {
        assetManager = new AssetManager();
        try {
            assetManager.load("./images/enemy.atlas", TextureAtlas.class);
            assetManager.load("./images/buttons.atlas", TextureAtlas.class);
            assetManager.load("./fonts/000.fnt", BitmapFont.class);
            assetManager.load("./fonts/111.fnt", BitmapFont.class);
            assetManager.setLoader(TiledMap.class, new TmxMapLoader(new InternalFileHandleResolver()));
            assetManager.load("./world/level1/map.tmx", TiledMap.class);
            assetManager.finishLoading();
        } catch (GdxRuntimeException e) { if (Variables.isDebug) System.err.println("\n[Assets] error: " + e + "\n"); }
     } 
}

很简单,对吗?所以,我查看了* .gradle文件,发现gradle知道在哪里搜索我的资产:

project.ext.assetsDir = new File("../android/assets");

我特别为IDEA(使用gdx-setup.jar)重新制作项目,但同样的问题出现了。我很困惑,并要求提供建议!

P.S。 AssetManager是一类LibGDX 1.1.0库。

4 个答案:

答案 0 :(得分:0)

您是否尝试在路径的开头省略./?请参阅:https://github.com/libgdx/libgdx/wiki/Managing-your-assets#loading-assets

./通常引用当前目录,但我不知道libgdx如何处理它。我不能以某种方式发表评论。

答案 1 :(得分:0)

我有类似的问题。生气3个小时后,我意识到路径是区分大小写的。 图块地图示例:

Android资源文件结构: 的资产/地图/ Desert.tmx

//Work as desktop luncher but not on android
TiledMap tiledMap = new TmxMapLoader().load("maps\\Desert.tmx"); 

//Works on android and dektop
TiledMap tiledMap = new TmxMapLoader().load("Maps\\Desert.tmx");

我注意到的第二件事是路径不应该以

开头
./  
../
.\\
..\\

//Enough
"Maps\\Desert.tmx"

//Too much
".\\Maps\\Desert.tmx"

答案 2 :(得分:0)

IDEA可能的出路之一是将桌面运行配置的Working directory设置为android/assets/文件夹。

答案 3 :(得分:-1)

您需要告诉“桌面模块”在“android模块”中查找资源。我忘记了这样做的确切步骤...