Не удается запустить настольный проект libgdx

Я разрабатываю приложение для Android с помощью Libgdx. До сих пор все шло хорошо (я занимался отладкой в ​​эмуляторе), но я пришел к тому, что мне нужно было настроить проект для рабочего стола, чтобы я мог быстрее протестировать приложение (поэтому вместо запуска его на эмуляторе, Я мог бы проверить это в настольном приложении).

Я сделал настройку так, как говорит вики, добавив настольную версию, и до сих пор все прошло хорошо, никаких ошибок компилятора. Но когда я пытаюсь запустить настольное приложение, я получаю следующую ошибку, даже не открывая окно:

Exception in thread "main" java.lang.NoClassDefFoundError: com/badlogic/gdx/Net
    at DesktopGame.main(DesktopGame.java:12)
Caused by: java.lang.ClassNotFoundException: com.badlogic.gdx.Net
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)

Строка 12 DesktopGame.java говорит:

new LwjglApplication(new UserStart(userID, appDefinitions), "Game", 1024, 600, false);

Где UserStart — это ApplicationListener (с пользовательским конструктором, поскольку мне понадобилась пара параметров, эта настройка хорошо работает на Android). Я не знаю, почему com.badlogic.gdx.Net не найден (и я не знаю, почему он его ищет, поскольку я не использую сетевые функции).

Кто-нибудь знает, что это может быть? Спасибо!


person Dr NotSoKind    schedule 25.01.2013    source источник
comment
Я никогда не использовал Libgdx сам, но похоже, что файл jar библиотеки для Libgdx не связан с вашим приложением. Взгляните на настройки пути к классам и/или файл манифеста jar вашего приложения.   -  person Tansir1    schedule 25.01.2013
comment
у вас есть необходимые банки libgdx в папке libs? Для настольного проекта вам понадобятся gdx-natives.jar, gdx-backend-lwjgl.jar и gdx-backend-lwjgl-natives.jar, не забудьте получить эти jar-файлы, а не исходники.   -  person Jimmt    schedule 25.01.2013
comment
@Jimmt Да, у меня есть jar-файлы libgdx в папке libs, и они связаны с путем сборки. Также добавляется основной проект (тот, который имеет связанный и экспортированный файл gdx.jar).   -  person Dr NotSoKind    schedule 25.01.2013
comment
@ Tansir1 Странно то, что большая часть импорта работает хорошо. Автозаполнение в Eclipse показывает мне большинство классов libgdx, кроме com.badlogic.gdx.Net.   -  person Dr NotSoKind    schedule 25.01.2013
comment
@Jimmt Несколько раз обновлял, очищал и перестраивал :/   -  person Dr NotSoKind    schedule 25.01.2013
comment
подождите, вы уверены, что он действительно существует? я не могу найти его в API... может быть, это интернет-фильтр   -  person Jimmt    schedule 25.01.2013
comment
@Jimmt Я понятия не имею, существует ли com.badlogic.gdx.Net или нет, если честно. Но если это не так, то меня больше удивляет, что он пытается его загрузить.   -  person Dr NotSoKind    schedule 25.01.2013
comment
Если вы перейдете к справочным библиотекам в своем основном проекте в Eclipse, вы должны увидеть gdx.jar. Откройте его и перейдите к com.badlogic.gdx, затем разверните его, чтобы найти Net.class. Если его там нет, попробуйте повторно импортировать gdx.jar в свой проект.   -  person Rod Hyde    schedule 26.01.2013
comment
возможно, вы просто не добавили свои библиотеки в свойствах. это произошло для версии libGDX для Android. возможно, вы должны сделать это и для своего рабочего стола. что-то вроде Это   -  person Hosein    schedule 26.01.2013


Ответы (2)


Решил! Ну типа. Я создал новый проект, используя пользовательский интерфейс установки из libgdx, а затем скопировал созданный проект рабочего стола в свой собственный проект. Я заметил, что основное отличие заключалось в том, какой конструктор я использовал для LwjglApplication, теперь в этом случае вместо передачи параметров я вызывал конструктор с LwjglApplicationConfiguration:

LwjglApplicationConfiguration cfg = new LwjglApplicationConfiguration();
cfg.title = "MyGame";
cfg.useGL20 = false;
cfg.width = 480;
cfg.height = 320;

...
new LwjglApplication(new UserStart(userID, appDefinitions), cfg);

Ура! Я не уверен, что это было основной проблемой, но, по крайней мере, теперь работает.

Спасибо всем за комментарии и советы.

person Dr NotSoKind    schedule 26.01.2013

Я только что добавил плагин gradle для eclipse, и моя проблема была решена. Плагин Gradle можно добавить, следуя инструкциям по этой ссылке http://estiloasertivo.blogspot.com/2013/03/tutorial-howto-install-and-configure.html

person SoftRock    schedule 11.07.2014