我有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库。
答案 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模块”中查找资源。我忘记了这样做的确切步骤...