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>

person cooljoebob64    schedule 03.03.2012    source источник
comment
Добро пожаловать в Stackoverflow! Просмотрите справку по редактированию уценки - возможно, форматирование вашего вопроса поможет людям понять проблему и предложить решение. Большие куски кода ошибки трудно читать, если они не отформатированы. :)   -  person simont    schedule 04.03.2012
comment
Вы нашли решение? Я планирую использовать TWL с libgdx, но я хотел бы знать, будет ли это работать, прежде чем тратить на это время.   -  person user717572    schedule 28.04.2012
comment
Я никогда этого не делал, к сожалению. Я просто выбросил его и создал свои собственные меню. Мне он очень понравился, и им было очень легко пользоваться, за исключением того, что он не работал на Android для меня.   -  person cooljoebob64    schedule 06.07.2012


Ответы (2)


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

person Ludevik    schedule 04.03.2012
comment
Пробовал так, все равно вылетает при переключении на любой экран меню. Укажите эту ошибку в logcat: 03-04 10:39:58.632: E/dalvikvm(28885): не удалось найти класс 'com.badlogic.gdx.twl.Layout', на который ссылается метод com.Nanners.OptionsScreen.‹init› - person cooljoebob64; 04.03.2012
comment
вы также должны включить gdx-twl в путь сборки в вашем проекте Android. - person Ludevik; 04.03.2012
comment
Добавление gdw-twl в проект Android предотвращает его запуск, что приводит к ошибке Conversion to Dalvik format failed with error 1 - person cooljoebob64; 05.03.2012

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

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

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

    Conversion to Dalvik format failed with error 1
    

Решение

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

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

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

На самом деле лучшее решение — избавиться от всего, что связано с twl, и использовать Scene2d.Ui. вместо. Он кроссплатформенный и намного проще в использовании.

person Lestat    schedule 10.01.2014