在 RoboVM 中测试我的 libGDX 应用程序时,我遇到了一个大问题。当我暂停我的应用程序(通过实际进入主屏幕或通过 Facebook 发送应用程序邀请)然后返回我的应用程序时,我的游戏类消失了。好像它没有在 resume() 方法上正确存储数据。首先我虽然是我的AssetLoader有问题,但经过一些调试我发现情况更糟。类和形状的实际实例消失。就好像它们从未存在过一样。
谷歌搜索问题后,我发现它可能与 IOSGraphics 有关,但我没有设法解决问题。
我的 IOSLauncher 看起来像这样,我已经删除了 Facebook 和 Google AdMob 的特定代码。
protected IOSApplication createApplication() {
IOSApplicationConfiguration config = new IOSApplicationConfiguration();
config.useAccelerometer = true;
config.useCompass = true;
config.orientationPortrait = true;
config.orientationLandscape = false;
return new IOSApplication(new Game(this), config);
}
@Override
public boolean didFinishLaunching(UIApplication application,
UIApplicationLaunchOptions launchOptions) {
FBSDKApplicationDelegate.getSharedInstance().didFinishLaunching(application, launchOptions);
initialize();
return true;
}
public void initialize() {
//...
}
public static void main(String[] argv) {
NSAutoreleasePool pool = new NSAutoreleasePool();
UIApplication.main(argv, null, IOSLauncher.class);
pool.close();
}
@Override
public void showAds(boolean show) {
//...
}
@Override
public void shareOnFacebook() {
//...
}
@Override
public void inviteFriends() {
//....
}
@Override
public boolean openURL(UIApplication application, NSURL url,
String sourceApplication, NSPropertyList annotation) {
super.openURL(application, url, sourceApplication, annotation);
return FBSDKApplicationDelegate.getSharedInstance().openURL(
application, url, sourceApplication, annotation);
}
@Override
public void didBecomeActive(UIApplication application) {
super.didBecomeActive(application);
FBSDKAppEvents.activateApp();
}
@Override
public void willResignActive(UIApplication application) {
super.willResignActive(application);
}
@Override
public void willTerminate(UIApplication application) {
super.willTerminate(application);
}
}