Libgdx и TWL: сила приложения Android закрывается в любом меню TWL, отлично работает на рабочем столе

Я использую меню, используя TWL (http://twl.l33tlabs.org/) в приложении, написанном с использованием Libgdx. Приложение работает нормально, если я не запускаю какие-либо меню, но как только я перехожу на экран меню, он немедленно принудительно закрывает. Экран меню отлично работает на настольной версии.

В какой путь построения должен быть включен TWL-android.jar (сейчас он ведет себя одинаково в main, android и т. Д.)? И как программа сможет использовать библиотеки из этого .jar вместо gdx-twl.jar по умолчанию? Должен ли я вручную реализовать что-то в коде, чтобы использовать его или в зависимости от платформы?

Кажется, что нет какой-либо документации или образца кода для любого пользователя, использующего TWL на android, только упоминание о том, что это можно сделать.

Запуск отладчика, подключенного к телефону, приводит к следующей ошибке logcat:

Could not find class 'com.badlogic.gdt.twl.Layout' referenced from method com.Nanners.OptionsScreen.<init> 

Я думаю, что TWL-android.jar также должен быть добавлен в путь сборки проекта android. Местоположение .jar не имеет значения.

Когда вы добавляете TWL-android.jar. Поскольку это особенность Android, вы не можете использовать ее в основном проекте, поэтому импортируемые вами классы являются gdx-twl. Чтобы упростить объяснение, я разберу его в разных сценариях.

  1. Вы добавляете TWL-андроид к своей траектории сборки Android. Но вы используете Gdx-twl в своем основном проекте. Что не добавлено. Таким образом, получение:

     Could not find class 'com.badlogic.gdx.twl.Layout' 
  2. Вы добавляете оба TWL-андроида и Gdx-twl в свой путь сборки. Таким образом, получение дублированных классов и:

     Conversion to Dalvik format failed with error 1 

Решение

Если вы используете классы TWL-android, вы можете сделать это только в проекте Android:

  • Merge Core, Desktop и Android. Или
  • Использование взаимодействия с платформой

Если вы используете Gdx-twl:

  • Не делай этого.

На самом деле лучшим решением является избавление от всех твитов и использование Scene2d.Ui . Его кроссплатформенность и намного проще в использовании.