Ошибка компиляции в Android Studio с LibGDX IOS
Я всегда получаю одну и ту же странную ошибку, когда пытаюсь создать.ipa из iOS-версии моей игры libGDX. Я использую robovm версии 2.3.5. Ошибка показывает только это сообщение на консоли robovm:
`[ОШИБКА] Неопределенные символы для архитектуры armv7: [ОШИБКА] "std::_Rb_tree_decrement(std::_Rb_tree_node_base*)", на которую ссылаются: [ERROR] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::_Rb_tree_iterator >, std::pair const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std:: _ Rb_tree_iterator>, std:: pair const &) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator> >:: _ M_insert_unique (std:: _ Rb_tree_iterator>, std:: pair const &) в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] std::_Rb_tree > >, std::_Select1st > > >, std::less, std::allocator > > > >::_M_insert_unique(std::_Rb_tree_iterator > > >, std::pair > > const&) в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] ... [ОШИБКА] "std::_Rb_tree_increment(std::_Rb_tree_node_base*)", на который ссылаются: [ERROR] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std:: _ Rb_tree_iterator>,:: pair const &) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std:: _ Rb_tree_iterator>, std:: pair const &) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] btInverseDynamicsBullet3::User2InternalIndex::buildMapping() в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] std:: _ std, _:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std:: _ Rb_tree_iterator>, std:: pair const &) в libgdx-bullet.a (User2Internal Index.o) [ОШИБКА] std:: _ Rb_tree>>, std:: _ Select1st>>>, std:: less, std:: allocator>>>>:: _ M_insert_unique (std:: _ Rb_tree_iterator>>>, std:: пара>> const &) в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] "std::string::_Rep::_S_empty_rep_storage", на которую ссылаются из: [ОШИБКА] std::map, std::allocator > >::operator[](int const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std::map, std::allocator > >::operator[](std::string const&) в libgdx-bullet. a (MultiBodyNameMap.o) [ОШИБКА] btInverseDynamicsBullet3::writeGraphvizDotFile(btInverseDynamicsBullet3::MultiBodyTree const*, btInverseDynamicsBullet3::MultiBodyNameMap const*, символьная константа *) в многоплановой_буквенной_телеграфе, std::_Select1st >, std::less, std::allocator > >::_M_erase(std::_Rb_tree_node >*) в libgdx-bullet.a(extras_wrap.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase(std::_Rb_tree_node >*) в libgdx-bullet.a(extras_wrap.o) [ERROR] "std::string::assign(std::string const&)", на который ссылаются из: [ERROR] btInverseDynamicsBullet3::MultiBodyNameMap::addBody(int, std::string const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ERROR] btInverseDynamicsBullet3::MultiBName addJoint(int, std::string const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] btInverseDynamicsBullet3::MultiBodyNameMap::getBodyName(int, std::string*) const в libgdx-bullet.a (MultiBodyNameMap). o) [ОШИБКА] btInverseDynamicsBullet3::MultiBodyNameMap::getJointName(int, std::string*) const в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] "std::_Rb_tree_insert_and_rebalance(bool, stb:: _) std::_Rb_tree_node_base*, std::_Rb_tree_node_base &) ", на который ссылаются из: [ERROR] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std:: _ RB_tree), std:: pair const &) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std::) пара const &) в libgdx-bullet.a (MultiBod yNameMap.o) [ОШИБКА] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std:: _ Rb_tree_iterator>, std:: pair const &) в libgdx-bullet. a (MultiBodyNameMap.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) в libgdx-bullet.a (MultiBodyNameMap. o) [ОШИБКА] std:: _ Rb_tree, std:: _ Select1st>, std:: less, std:: allocator>>:: _ M_insert_unique (std:: _ Rb_tree_iterator>, std:: pair const &) в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_insert_unique(std::pair const&) в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] std::_Rb_tree > >, std::_Select1st > > >, std::less, std::allocator > > > >::_M_insert_unique(std::_Rb_tree_iterator > > >, std::pair > > const&) в libgdx-bullet.a(User2InternalIndex.o) [ОШИБКА] ... [ОШИБКА] "std::string::_Rep::_M_destroy(std::allocator const&)", на который ссылается: [ERROR] std::map, std::allocator > >::operator[](int const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std::map, std::allocator > >::operator[](std::string const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] btInverseDynamicsBullet3::writeGraphvizDotFile(btInverseDynamicsBullet3::MultiBodyTree const*, btInverseDynamicsBullet3::MultiBodyNameMap const*, char const*) в libgdx-bullet.a(MultiBodyTreeDree_RD_RD_RD_RD_RD_RD_RD) _REG_STRB_RID_REG_RID_REG_REG_RUB_RUB_RUSB_REG_RUSB_RUSB, std:: less, std:: allocator>>:: _ M_erase (std:: _ Rb_tree_node> *) в libgdx-bullet.a(extras_wrap.o) [ОШИБКА] std:: _ Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_erase(std::_Rb_tree_node >*) в libgdx-bullet.a(extras_wrap.o) [ERROR] "std::basic_string, std::allocator >::basic_string(std::string const&)", на которую ссылаются: [ERROR] std::map, std::allocator > >::operator[](int const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ERROR] std::map, std::allocator > >::operator[](std::string const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_create_node(std::pair const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] std::_Rb_tree, std::_Select1st >, std::less, std::allocator > >::_M_create_node(std::pair const&) в libgdx-bullet.a(MultiBodyNameMap.o) [ОШИБКА] ld: символы не найдены для архитектуры armv7 [ОШИБКА] clang: ошибка: команда компоновщика не выполнена с выходом код 1 (используйте -v для просмотра вызова) [ОШИБКА] Не удалось создать IPA org.apache.commons.exec.ExecuteException: Команда '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -o /var/folders/g8/ngcg1rn95r506xwdly9s9t2r0000gn/T/robovm1251516344287298932.tmp/thumbv7/IOSLauncher -arch armv7 -Wl,-filelist,/var/folder / g8 / t2 w -L /Users/macUser/.robovm-sdks/robovm-2.3.5/lib/vm/ios/thumbv7 -ObjC -exported_symbols_list /var/folders/g8/ngcg1rn95r506xwdly9s9t2r0000gn/T/robovmumb7308308308152_130/258/258308258158258258258258258258258258258258258258258252252162322162162165162165162165165165161485161485_1485_1485x5155152162151605151605151605151605152161485 / 5-ой недели,-no_implicit_dylibs -Wl,-dead_strip -fPIC -miphoneos-version-min=7.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -lrobovm-bc -force_load /Users/macUser/.robovm-sdks/robovm-2.3.5/lib/vm/ios/thumbv7/librobovm-rt.a -lrobovm-core -lgc -lpthread -ldl -lm -lz -liconv -lsqlite3 -framework Foundation -рамка UIKit -рамка OpenGLES -рамка QuartzCore -рамка CoreGraphics -рамка OpenAL -рамка AudioToolbox -фреймворк AVFoundation -force_load /Users/macUser/.robovm/cache/ios/thumbv7/redle/User/grama 2/ файлы-2.1/com.badlogicgames.gdx/ GDX-box2d-платформы /1.9.8/eb549ac5a5dbb5663eacf782d8cb8f22731638e0/ GDX-box2d-платформы 1.9.8-туземцы-ios.jar.extracted/META-INF/robovm/ ИОС /libs/libgdx-box2d.a -force_load /Users/macUser/.robovm/cache/ios/thumbv7/release/Users/macUser/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx- пуля платформы /1.9.8/44de3e9678419ae2a4cfe7fd674b1bf82d56ae20/ GDX-пуля platform-1.9.8-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libgdx-bullet.a -force_load /Users/macUser/.robovm/cache/ios/thumbv7/release/Users/macUser/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.9.8/6e511ad1e19a8c5f792bb149d78c4e7e6f9e828f/gdx-platform-1.9.8-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libgdx.a -force_load /Users/macUser/.robovm/cache/ios/thumbv7/release/Users/macUser/.gradle/caches/modules-2/files-2.1/com.badlogicgames.gdx/gdx-platform/1.9.8/6e511ad1e19a8c5f792bb149d78c4e7e6f9e828f/gdx-platform-1.9.8-natives-ios.jar.extracted/META-INF/robovm/ios/libs/libObjectAL.a -llinkXerxerSerxerSerxerSerferSmeerServerSerxerSMerSerXerSerxerSer-zer-zerSererSer 12.1 -Xlinker -rpath -Xlinker @executetable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks'не удалось (значение выхода: 1) в org.apache.commons.exec.DefaultExecutor.executeInternal(DefaultExecutor.java:346) в org.apache.commons.exec.DefaultExecutor.execute(DefaultExecutor.java:149) в org.robovm.compiler.util.Executor.exec(Executor.java:344) в org.robovm.compiler.util.ToolchainUtil.link(ToolchainUtil.java:385) в org.robovm.compiler.target.AbstractTarget.doBuild(AbstractTarget.java:276) в org.robovm.compiler.target.ios.IOSTarget.doBuild(IOSTarget.java:349) в org.robovm.compiler.target.AbstractTarget.build(AbstractTarget.java:270) в org.robovm.compiler.Linker.link(Linker.java:433) на сайте org.robovm.compiler.AppCompiler.compile(AppCompiler.java:466) на сайте org.robovm.compiler.AppCompiler.build(AppCompiler.java:784) на сайте org.robovm.idea.compilation.RoboVmCompileTask$1.doCompile(RoboVmCompileTask.java:123) в org.robovm.idea.compilation.RoboVmCompilerThread.run(RoboVmCompilerThread.java:66)`
Это мой build.graddle:
`buildscript {repositories {mavenLocal () mavenCentral () maven {url" https://plugins.gradle.org/m2/ "} maven {url" https://oss.sonatype.org/content/repositories/snapshots/ " } jcenter () применить плагин: "подписывание" google() } зависимости { classpath 'org.wisepersist:gwt-gradle-plugin:1.0.6' classpath 'com.android.tools.build:gradle:3.2.1' classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.5' } } allprojects { apply plugin: "eclipse" apply plugin: "idea" version = '1.0' ext { appName = "Сборщик долгов" gdxVersion = '1.9.8' roboVMVersion = '2.3.5' box2DLightsVersion = '1.4' ashleyVersion = '1.7.0' aiVersion = '1.8.0' } хранилища { mavenLocal() mavenCentral() google() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/releases/" } } } project(":android") {применить плагин:" android " конфигурации {нативные} зависимости {реализация проекта (":core") реализация "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" natives "com.badlogicgames.gdx: платформа gdx:$gdxVersion:natives-armeabi" native" com.badlogicgames.gdx: платформа gdx:$gdxVersion:natives-armeabi-v7a" native".badlogicgames.gdx: платформа gdx:$gdxVersion:natives-arm64-v8a" natives "com.badlogicgames.gdx: платформа gdx:$gdxVersion:natives-x86" natives "com.badlogicgames.gdx: платформа gdx:$gdxVersion:natives-x86_64"реализация"com.badlogicgames.gdx:gdx-box2d:$gdxVersion" natives "com.badlogicgames.gdx:gdx-box2d-платформа:$gdxVersion:natives-armeabi" natives "com.gadg: g gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a" natives "com.badlogicgames.gdx:gdx-box платформа: $ gdxVersion: natives-x86 "native"com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64"реализация"com.badlogicgames.gdx:gdx-ai:$aiVersion"реализация" com.badlogic.gdx:gdx-bullet:$gdxVersion" natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi" natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-armeabi-v7a" natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxV:natives-arm64-v8a" natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86" natives "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-x86_64" } } project(":core") {применить плагин: "java" зависимости {реализация "com.badlogicgames.gdx:gdx:$gdxVersion" реализация "com.badlogicgames.gdx: gdx-box2d: $ gdxVersion" реализация "com.badlogicgames.gdx: gdx-ai: $ aiVersion "реализация"io.socket:socket.io-client:1.0.0"файлы реализации ("build/libs/kryonet-2.21-all.jar") реализация"com.badlogicgames.gdx:gdx-bullet:$gdxVersion" } } project(":ios") {применить плагин:" java "применить плагин:" robovm "зависимости {реализация проекта (": core ") реализация" com.mobidevelop.robovm: robovm- rt: $ roboVM Версия "реализация" com.mobidevelop.robovm: robovm-cocoatouch:$roboVMVersion"реализация"com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"реализация" com.badlogicgames.gdx: gdx-платформа:$gdxVersion:natives-ios"реализация" com.badlogicgames.gdx g: box2d: $ gdxVersion "реализация"com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios"реализация" com.badlogicgames.gdx: gdx-bullet: $ gdxVersion "реализация" com.badlogicgames.xdx:gdx-bullet-platform:$gdxVersion:natives-ios"файлы реализации ("build/libs/kryonet-2.21-all.jar") } } project(":desktop") {применить плагин: зависимости" java "{проект реализации ((":core") реализация "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" реализация "com.badlogicgames.gdx: gdx-платформа: $ gdxVersion: собственный рабочий стол" реализация "com.badlogicgames.gdx: gdx -box2d-platform: $ gdxVersion: "реализация" natives-desktop "com.badlogicgames.gdx:gdx-bullet-platform:1.9.1:natives-desktop" } } project(":html") {применить плагин: "gwt" применить плагин: "война" зависимости реализация проекта mentation (":core") "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" реализация "com.badlogicgames.gdx:gdx:$gdxVersion: источники" реализация "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion: источники "реализация"com.badlogicgames.gdx:gdx-box2d:$gdxVersion: источники "реализация"com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion: источники "реализация" com.badlog.gdx:gdx-ai:$aiVersion:sources" } } tasks.eclipse.doLast { delete ".project" }`
Как я могу использовать пулю 1.9.8 для создания IPA с libgdx без ошибки этой компиляции в libgdx?
0 ответов
Обновление libGDX до версии 1.9.9, похоже, устраняет ошибку.
Также я получил ту же ошибку на 1.9.8. Я думаю, что это было связано с обновлением файла конфигурации ios.iml. Мне пришлось удалить фасетную часть Android из этого файла из-за другой ошибки сборки, отсюда (мое предположение) отключение зависимостей разных архитектур от цели iOS.
Другое решение состоит в том, чтобы убрать физическую зависимость от пули. Источник ошибки. Простое удаление строки из iOS:
project(":ios") {
apply plugin: "java"
apply plugin: "robovm"
dependencies {
implementation project(":core")
implementation "com.mobidevelop.robovm:robovm-rt:$roboVMVersion"
implementation "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion"
implementation "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion"
implementation "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios"
//remove this line
//implementation "com.badlogicgames.gdx:gdx-bullet-platform:$gdxVersion:natives-ios"
}
}
Конечно, это не имеет смысла, если вы на самом деле используете пули.