ios - ios GdxRuntimeException 上的 libgdx 无法加载文件

标签 ios xamarin.ios libgdx ikvm xamarin-studio

我决定将我的应用程序从 Android 迁移到 iOS。应用程序使用 libgdx 库。我使用 libgdx 生成了 ios 子项目,并使用 Xamarin Studio 打开了它。所有图像都链接自 my-project-android/assets/data。所有图像都设置了构建操作> 内容。现在每次从 xamarin studio 运行项目时,我都会得到 GdxRuntimeException Coldn't load file: data/background.png。这个文件是我在我的应用程序中加载的第一个图像。

我在 Mac 上使用模拟器和 iPhone 设备完成的所有操作。

堆栈跟踪:

    com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: /data/background.png ---> System.Exception: unknown protocol: file
at java.net.URL..ctor (java.net.URL context, System.String spec, java.net.URLStreamHandler handler) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at com.badlogic.gdx.graphics.Pixmap..ctor (com.badlogic.gdx.files.FileHandle file) [0x0004c] in /Users/badlogic/jenkins/workspace/libgdx-mac/gdx/src/com/badlogic/gdx/graphics/Pixmap.java:140
at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare () [0x00052] in /Users/badlogic/jenkins/workspace/libgdx-mac/gdx/src/com/badlogic/gdx/graphics/glutils/FileTextureData.java:64
at com.badlogic.gdx.graphics.Texture.load (TextureData data) [0x00036] in /Users/badlogic/jenkins/workspace/libgdx-mac/gdx/src/com/badlogic/gdx/graphics/Texture.java:175
at com.badlogic.gdx.graphics.Texture.create (TextureData data) [0x0000d] in /Users/badlogic/jenkins/workspace/libgdx-mac/gdx/src/com/badlogic/gdx/graphics/Texture.java:159
at com.badlogic.gdx.graphics.Texture..ctor (com.badlogic.gdx.files.FileHandle file, com.badlogic.gdx.graphics.Format format, Boolean useMipMaps) [0x00060] in /Users/badlogic/jenkins/workspace/libgdx-mac/gdx/src/com/badlogic/gdx/graphics/Texture.java:133
at com.badlogic.gdx.graphics.Texture..ctor (com.badlogic.gdx.files.FileHandle file) [0x00001] in /Users/badlogic/jenkins/workspace/libgdx-mac/gdx/src/com/badlogic/gdx/graphics/Texture.java:122
at com.kaproel.trafficControlManager.MainMenuScreen..ctor (com.kaproel.trafficControlManager.trafficControl game) [0x00088] in /Users/Piotr/Developer/mono-iOS/trafficControl/src/com/kaproel/trafficControlManager/MainMenuScreen.java:64
at com.kaproel.trafficControlManager.trafficControl.create () [0x00024] in /Users/Piotr/Developer/mono-iOS/trafficControl/src/com/kaproel/trafficControlManager/trafficControl.java:32
at com.badlogic.gdx.backends.ios.IOSGraphics.OnLoad (System.EventArgs arg0) [0x00010] in /Users/badlogic/jenkins/workspace/libgdx-mac/backends/gdx-backend-iosmonotouch/src/com/badlogic/gdx/backends/ios/IOSGraphics.java:133
at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.RunWithFrameInterval (Int32 frameInterval) [0x00041] in /Developer/MonoTouch/Source/monotouch/src/OpenGLES/OpenTK_1.0/Platform/iPhoneOS/iPhoneOSGameView.cs:694
at OpenTK.Platform.iPhoneOS.iPhoneOSGameView.Run () [0x00000] in /Developer/MonoTouch/Source/monotouch/src/OpenGLES/OpenTK_1.0/Platform/iPhoneOS/iPhoneOSGameView.cs:652
at com.badlogic.gdx.backends.ios.IOSApplication.FinishedLaunching (MonoTouch.UIKit.UIApplication uiApp, MonoTouch.Foundation.NSDictionary options) [0x0023e] in /Users/badlogic/jenkins/workspace/libgdx-mac/backends/gdx-backend-iosmonotouch/src/com/badlogic/gdx/backends/ios/IOSApplication.java:166
at at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
at MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38
at com.kaproel.trafficControlManager.Application.Main (System.String[] args) [0x00000] in /Users/Piotr/Developer/mono-iOS/trafficControl-ios/Main.cs:33

请给我相同的解决方案

代码截图:

  public MainMenuScreen(final trafficControl game) {
    this.game = game;
    this.stage = new Stage(0, 0,true);
    batch = new SpriteBatch();

    this.camera = new OrthographicCamera();
    this.camera.setToOrtho(false, 800, 480);


    texture = new Texture(Gdx.files.local("data/background.png")); // <!-- this line make runtime error

最佳答案

可能是png优化的问题。你检查这个链接了吗

http://code.google.com/p/libgdx/wiki/IOSWIP

阅读此页面中的 PNG 优化。可能会对您有所帮助。

关于ios - ios GdxRuntimeException 上的 libgdx 无法加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16570853/

相关文章:

ios - UIImageView 动画错误

ios - Swift 超出范围....使用 tableView[indexPath]

ios - 在 iOS 中使用导航的私有(private)属性(property)离线 map

java - Box2D - 角色粘在物体的侧面

java - 在 Screen libgdx 中添加分数

android - microsoft band 如何从自定义磁贴读取心率或某些传感器数据并与移动应用程序通信?

c# - 单点触控饼图

ios - Xamarin.iOS - 如何动态更改标签字体大小?

iOS:购买时恢复之前购买的应用内商品,但不更新交易

android - Libgdx - 使用 MipMaps