你好,我在安卓系统中运行我的项目时遇到了问题,在桌面上运行一切正常。我在桌面上的工作目录在 "ProjecktGKLibGDX\android\assets "的位置(所以和安卓的默认值一样),当我在安卓上运行换算器时,它以错误的方式崩溃,而不是其中一个文件找不到(menu.png)。我使用Atlas来制作Sprites,它的工作原理是这样的:Atlas= new TextureAtlas("Menu.atlas");这是我的Atlas文件。
menu.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
EXIT
rotate: false
xy: 1, 418
size: 900, 415
orig: 900, 415
offset: 0, 0
index: -1
LOAD
rotate: false
xy: 1, 1
size: 900, 415
orig: 900, 415
offset: 0, 0
index: -1
menu2.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
PLAY
rotate: false
xy: 1, 418
size: 900, 415
orig: 900, 415
offset: 0, 0
index: -1
SAVE
rotate: false
xy: 1, 1
size: 900, 415
orig: 900, 415
offset: 0, 0
index: -1
menu3.png
format: RGBA8888
filter: Nearest,Nearest
repeat: none
open_menu
rotate: false
xy: 1, 1
size: 512, 512
orig: 512, 512
offset: 0, 0
index: -1
Atlas和png图片在同一个文件夹里("ProjecktGKLibGDX\android\assets"),所以android可以读取Atlas文件,但不能读取png文件。
com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: menu.PNG
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: menu.PNG (Internal)
Caused by: java.io.FileNotFoundException: menu.PNG
你的错误信息 "Error reading file: menu.PNG (Internal) "意味着它可能与使用LibGDX文件类型 "Internal "有关。如果你用一个字符串创建一个TextureAtlas,它将自动使用 "内部 "文件类型创建图集。https:/libgdx.badlogicgames.comcinightliesdocsapicombadlogicgdxgraphicsg2dTextureAtlas.html#TextureAtlas-java.lang.String-。
在桌面上,内部文件和本地文件类型基本上是一样的,所以这些并不重要,但在Android上,它们是不同的。你可以在这里阅读更多关于不同文件类型的信息。https:/github.comlibgdxlibgdxwikiFile-handling(文件处理)
试试换行。
atlas= new TextureAtlas("Menu.atlas");
改成:
atlas = new TextureAtlas(Gdx.files.local("Menu.atlas"));
可能是因为menu.PNG不存在。检查你的资产,确保你的文件名是 "menu.PNG"。