FileNotFoundException Android 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.(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.(Texture.java:121) 10-28 08:00:53.528: E/AndroidRuntime(1203): at com.badlogic.gdx.graphics.Texture.(Texture.java:100) 10-28 08:00:53.528: E/AndroidRuntime(1203): at com.badlogic.gdx.graphics.Texture.(Texture.java:92) 10-28 08:00:53.528: E/AndroidRuntime(1203): at com.MKgames.game1.screen.MainMenuScreen.(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.(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")); 

你应该看看这里并按照这些说明操作: https : //github.com/libgdx/libgdx/wiki/Manual-project-setup#asset-folder-setup

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

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

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

现在应该是

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

这只是指向图像的位置。

要查找资产文件夹的资源,如果不是在你想要的任何文件夹里面的那些资源文件夹1,

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述 你的错误是在草案中你有android作为yourpicture.png是一个Windows快捷方式或链接到照片,删除和复制照片没有链接,如果你确实按下拖动我认为Windows控件也是复制