使用RoboVM的Libgdx在iOS上出现“Unsatisfied link error at IOSGLES20.init”的问题

9

我尝试使用RoboVM将我的LibGDX游戏移植到iOS上。

当我在模拟器上运行应用程序时,我遇到了这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: 
at com.badlogic.gdx.backends.iosrobovm.IOSGLES20.init(Native Method)
at com.badlogic.gdx.backends.iosrobovm.IOSGLES20.<init>(IOSGLES20.java)
at com.badlogic.gdx.backends.iosrobovm.IOSApplication.didFinishLaunching(IOSApplication.java)
at com.badlogic.gdx.backends.iosrobovm.IOSApplication$Delegate.didFinishLaunching(IOSApplication.java)
at org.robovm.cocoatouch.uikit.UIApplicationDelegate$Callbacks.didFinishLaunching(UIApplicationDelegate.java)
at org.robovm.cocoatouch.uikit.UIApplication.UIApplicationMain(Native Method)
at org.robovm.cocoatouch.uikit.UIApplication.main(UIApplication.java)
at ***********

我有同样的问题,使用相同的类(IOSGLES20)。 - talloaktrees
2个回答

7

好的,听起来您可能已经升级到了libGDX 1.6.1+。

请查看您的主要build.gradle文件中是否有以下内容:

natives "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"

如果您有这样的代码,请将其更改为以下内容(natives 更改为 compile ):
compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
compile "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-ios"

看看这是否解决了问题。

我刚刚花了几个小时,没有意识到在更新到新的libGDX时我错过了一步,而roboVM不再将bin文件作为ipa构建的一部分包括在内,因为它们现在是打包成JAR文件通过编译引入的。(对于这些文件,在robovm.xml中也没有库条目)


1
当你在修复s/natives/compile/时,你也可以清理ios/build.gradle文件:你可以删除copyNativesupdateRoboVMXML任务以及任何引用这些任务的其他行(根据libGDX 1.6.1发布说明:http://www.badlogicgames.com/wordpress/?p=3694)。顺便说一句,感谢这个修复 - 我完全错过了它并且遇到了同样的问题! - mm2001

0
如果你遇到这个问题,这是我如何解决它的方法:我从一个旧论坛上得到了一个建议: -保存主项目中的类 -删除整个项目 -使用LibGDX UI Setup从头开始重建 -将你的类复制回主项目。
正如那个人所说,总会有一些非常小的故障你会忽略掉。
我浪费了3-4个小时,然后我采纳了这个建议,一切都像魔法般地运行 :)

我现在遇到了这个问题,而这个“解决方案”并没有解决它。你是否再次遇到了同样的问题?如果是,你知道真正的解决方案吗? - jgg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接