Libgdx для iOS с RoboVM — ошибка неудовлетворительной ссылки в IOSGLES20.init

Пытаюсь портировать свою игру LibGDX на iOS с помощью RoboVM.

При запуске приложения для эмулятора я получаю эту ошибку:

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 ***********

person Bogdan Alexandru    schedule 17.02.2014    source источник
comment
У меня такая же проблема с классом smae (IOSGLES20)   -  person talloaktrees    schedule 27.02.2014


Ответы (2)


Хорошо, похоже, вы сделали обновление до 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 больше не включает бины как часть сборки ipa, поскольку теперь они упакованы как JAR, которые всасываются через компиляцию. (для них больше нет записей lib в robovm.xml)

person Michael Joyner    schedule 20.06.2015
comment
Пока вы исправляете s/natives/compile/, вы также можете очистить файл ios/build.gradle: вы можете удалить задачи copyNatives и updateRoboVMXML и любую другую строку, которая ссылается на эти задачи (согласно примечаниям к выпуску libGDX 1.6.1: badlogicgames.com/wordpress/?p=3694). Спасибо за это исправление, кстати - полностью пропустил его и возникла та же проблема! - person mm2001; 17.09.2015

если у вас есть эта проблема, вот как я ее решил: я воспользовался советом кого-то на старом форуме: -сохраните свои классы из основного проекта -удалите весь проект -перестройте с нуля с помощью LibGDX UI Setup -скопируйте обратно свои классы в основной проект.

Как сказал тот парень, всегда будет какой-то очень маленький сбой, который вы упустите.

Я потратил на это 3-4 часа, потом последовал совету, и все заработало как шарм :)

person Bogdan Alexandru    schedule 27.02.2014
comment
Я испытываю эту проблему прямо сейчас, и это «решение» не решило ее. Вы снова столкнулись с той же проблемой? Если да, то знаете ли вы реальное решение? - person jgg; 09.04.2015