FileNotFoundException Android logcat错误

时间:2014-10-28 15:25:22

标签: java android libgdx logcat

当我测试桌面版本时,我的游戏运行正常,但是当我启动Android模拟器并尝试在模拟器上运行游戏时,游戏关闭并且我得到了logcat错误:

10-28 08:00:53.528: E/AndroidRuntime(1203): FATAL EXCEPTION: GLThread 84
10-28 08:00:53.528: E/AndroidRuntime(1203): Process: com.mkgame.game1.android, PID: 1203
10-28 08:00:53.528: E/AndroidRuntime(1203): com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: playButton2.png
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.graphics.Texture.load(Texture.java:130)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:121)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:100)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:92)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.MKgames.game1.screen.MainMenuScreen.<init>(MainMenuScreen.java:38)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.MKgames.Game1.create(Game1.java:29)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.backends.android.AndroidGraphics.onSurfaceChanged(AndroidGraphics.java:236)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1512)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1240)
10-28 08:00:53.528: E/AndroidRuntime(1203): Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Error reading file: playButton2.png (Internal)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:77)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:220)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137)
10-28 08:00:53.528: E/AndroidRuntime(1203):     ... 10 more
10-28 08:00:53.528: E/AndroidRuntime(1203): Caused by: java.io.FileNotFoundException: playButton2.png
10-28 08:00:53.528: E/AndroidRuntime(1203):     at android.content.res.AssetManager.openAsset(Native Method)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at android.content.res.AssetManager.open(AssetManager.java:316)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at android.content.res.AssetManager.open(AssetManager.java:290)
10-28 08:00:53.528: E/AndroidRuntime(1203):     at com.badlogic.gdx.backends.android.AndroidFileHandle.read(AndroidFileHandle.java:75)
10-28 08:00:53.528: E/AndroidRuntime(1203):     ... 12 more

我明白错误很明显,找不到文件,但它应该是因为它的位置很好,当我作为桌面应用程序运行时文件很好(我将所有桌面资产复制到android资产,它们完全一样)。那么问题是什么呢?

这是我设置图像的地方:

Texture playButtonTxture = new Texture(Gdx.files.internal("playButton2.png"));

3 个答案:

答案 0 :(得分:0)

您应该在此处查看并按照以下说明操作:https://github.com/libgdx/libgdx/wiki/Manual-project-setup#asset-folder-setup

  

Android项目有一个名为assets的子文件夹,它是自动创建的。 Android应用程序可用的文件必须放在此处。这是有问题的,因为桌面应用程序必须可以使用这些相同的文件。而不是维护所有文件的两个副本,桌面项目应该配置为在Android项目中找到资产[...]

答案 1 :(得分:0)

资源将查找资产文件夹,如果不在您想要的任何文件夹内作为图片1的那些资源,

enter image description here

如果在文件夹图片2中,如果在更多文件夹中没有使用绝对路径!

enter image description here

编辑:顺便说一句你的照片是一张照片,好吧我的意思是你可以打开另一个程序,而不是这个围栏是腐败的

enter image description here 你的错误是在草案中你有android作为yourpicture.png是一个Windows快捷方式或链接到照片,删除和复制照片没有链接,如果你确实按下拖动我认为Windows控件也是复制< / p>

答案 2 :(得分:0)

确保将图像放在正确的位置。将图像拖到资源文件夹中,然后应该有一个默认数据文件夹,将图像拖到数据文件夹中。您的代码中的下一步

纹理playButtonTxture =新纹理(Gdx.files.internal(“playButton2.png”));

现在应该是

纹理playButtonTxture =新纹理(Gdx.files.internal(“data / playButton2.png”));

只是指向图像的位置。