我使用 libGDX 创建了一个游戏应用程序,它在我的桌面、Android 模拟器和我的 Android 设备上成功运行,但是,当尝试将其作为 iOS 模拟器应用程序启动时,我收到以下错误:
[WARN] android.System: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. [WARN] android.System: java.lang.Throwable: Explicit termination method 'close' not called at dalvik.system.CloseGuard.open(CloseGuard.java) at java.io.RandomAccessFile.(RandomAccessFile.java) at java.io.RandomAccessFile.(RandomAccessFile.java) at java.util.zip.ZipFile.(ZipFile.java) at java.util.zip.ZipFile.(ZipFile.java) at java.lang.PathClassLoader.init(PathClassLoader.java) at java.lang.PathClassLoader.findResource(PathClassLoader.java) at java.lang.ClassLoader.getResource(ClassLoader.java) at java.lang.ClassLoader.getResourceAsStream(ClassLoader.java) at java.lang.Class.getResourceAsStream(Class.java) at com.badlogic.gdx.files.FileHandle.read(FileHandle.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas$TextureAtlasData.(TextureAtlas.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java) at com.appsandsmiles.MammiMammiGameHelpers.AssetLoader.load(AssetLoader.java) at com.appsandsmiles.MammiMammi.MammiMammiGame.create(MammiMammiGame.java) at com.badlogic.gdx.backends.iosrobovm.IOSGraphics.draw(IOSGraphics.java) at com.badlogic.gdx.backends.iosrobovm.IOSGraphics$1.draw(IOSGraphics.java) at org.robovm.apple.uikit.UIView.$cb$drawRect$(UIView.java) at org.robovm.apple.uikit.UIApplication.main(Native Method) at org.robovm.apple.uikit.UIApplication.main(UIApplication.java) at com.appsandsmiles.MammiMammi.IOSLauncher.main(IOSLauncher.java)
和:
com.badlogic.gdx.utils.GdxRuntimeException: File not found: data/spritesheet.atlas (Internal) at com.badlogic.gdx.files.FileHandle.read(FileHandle.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas$TextureAtlasData.(TextureAtlas.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java) at com.badlogic.gdx.graphics.g2d.TextureAtlas.(TextureAtlas.java) at com.appsandsmiles.MammiMammiGameHelpers.AssetLoader.load(AssetLoader.java) at com.appsandsmiles.MammiMammi.MammiMammiGame.create(MammiMammiGame.java) at com.badlogic.gdx.backends.iosrobovm.IOSGraphics.draw(IOSGraphics.java) at com.badlogic.gdx.backends.iosrobovm.IOSGraphics$1.draw(IOSGraphics.java) at org.robovm.apple.uikit.UIView.$cb$drawRect$(UIView.java) at org.robovm.apple.uikit.UIApplication.main(Native Method) at org.robovm.apple.uikit.UIApplication.main(UIApplication.java) at com.appsandsmiles.MammiMammi.IOSLauncher.main(IOSLauncher.java)
我尝试创建一个 Hallo Word 项目来检查它是否在 iOS 模拟器上运行,结果确实如此,我猜问题出在代码中的某个地方,但正如我在开头提到的,该应用程序确实可以在 Android 设备上运行并在桌面上。
最佳答案
通过查看第二个日志 block ,您似乎没有在正确的位置放置“data/spritesheet.atlas”,或者您的 ios 项目没有从 android 项目“Assets”获取其资源文件夹。
如果日志中提到的“Data”文件夹指的是 ios 项目的“Data”文件夹,您可能应该将图形移动到 android 项目中的“Data/Assets”文件夹。
关于java - libGDX iOS 应用程序在调用 creat() 后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145507/