Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 1
Регистрация: 18.08.2014
Сообщений: 9
1

Не могу сделать простейшую Libgdx-игру, одна и та же ошибка вылетает

03.09.2014, 16:30. Показов 2248. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет! Дело такое.

Только-только начал учиться работать с Libgdx-библиотекой. Хотел простую desktop-игрушку для начала забабахать, но в стандартном первом уроке уже показана разработка одним кодом приложухи и для компа, и для андройда. Ну, недолго думая, поставил заново Eclipse с ADT, подключил библиотеку, и даже сделал desktop-версию hello-world с использованием Libgdx. С этим проблем нет.

Сделал я всё прямо так, как сказано в уроке. Родной эмулятор у меня сильно тормозил, поэтому поставил Genymotion (нравится, кстати). Но андроид-версия, как ни странно, крашится. Ок, мб дело в эмуляторе. Настроил собственный железный телефон-андроид для отладки на нем. Тоже крашится!

Причем действующий класс-ядро чист, только из шаблона:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package main;
 
import com.badlogic.gdx.ApplicationListener;
 
public class Game implements ApplicationListener {
 
    public void create() {
        // TODO Auto-generated method stub
    }
 
    public void resize(int width, int height) {
        // TODO Auto-generated method stub
    }
 
    public void render() {
        // TODO Auto-generated method stub
    }
 
    public void pause() {
        // TODO Auto-generated method stub
    }
 
    public void resume() {
        // TODO Auto-generated method stub
    }
 
    public void dispose() {
        // TODO Auto-generated method stub
    }
 
}
А вот код главного запускаемого класса:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.drop_android;
 
import main.Game;
import android.os.Bundle;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.badlogic.gdx.backends.android.AndroidApplication;
 
public class AndroidGame extends AndroidApplication
{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
 
        cfg.useCompass = false;
        cfg.useAccelerometer = false;
 
        initialize(new Game(), cfg);
    }
}
И самое интересное: если я в этом классе AndroidGame поменяю "extends AndroidApplication" на (шаблонный, при создании так) "extends ActionBarActivity" и убираю initialize (как метод класса AndroidApplication), то ему всё нравится!

Не пойму, почему у меня ни Genymotion, ни свой телефон не хотят дружить с Libgdx! У кого-нибудь так уже было??
Логкат и консоль при запуске:

Кликните здесь для просмотра всего текста
Logcat:
09-03 12:27:44.736: D/dalvikvm(1248): Late-enabling CheckJNI
09-03 12:27:44.784: I/dalvikvm(1248): Failed resolving Lcom/badlogic/gdx/backends/android/AndroidApplicationBase; interface 1189 'Lcom/badlogic/gdx/Application;'
09-03 12:27:44.784: W/dalvikvm(1248): Link of class 'Lcom/badlogic/gdx/backends/android/AndroidApplicationBase;' failed
09-03 12:27:44.788: I/dalvikvm(1248): Failed resolving Lcom/badlogic/gdx/backends/android/AndroidApplication; interface 1220 'Lcom/badlogic/gdx/backends/android/AndroidApplicationBase;'
09-03 12:27:44.788: W/dalvikvm(1248): Link of class 'Lcom/badlogic/gdx/backends/android/AndroidApplication;' failed
09-03 12:27:44.788: W/dalvikvm(1248): Unable to resolve superclass of Lcom/drop_android/AndroidGame; (1219)
09-03 12:27:44.788: W/dalvikvm(1248): Link of class 'Lcom/drop_android/AndroidGame;' failed
09-03 12:27:44.792: D/AndroidRuntime(1248): Shutting down VM
09-03 12:27:44.792: W/dalvikvm(1248): threadid=1: thread exiting with uncaught exception (group=0xa4d15b20)
09-03 12:27:44.792: E/AndroidRuntime(1248): FATAL EXCEPTION: main
09-03 12:27:44.792: E/AndroidRuntime(1248): Process: com.drop_android, PID: 1248
09-03 12:27:44.792: E/AndroidRuntime(1248): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.drop_android/com.drop_android.AndroidGame}: java.lang.ClassNotFoundException: Didn't find class "com.drop_android.AndroidGame" on path: DexPathList[[zip file "/data/app/com.drop_android-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.drop_android-2, /system/lib]]
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2121)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.app.ActivityThread.access$800(ActivityThread.java:135)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.os.Handler.dispatchMessage(Handler.java:102)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.os.Looper.loop(Looper.java:136)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.app.ActivityThread.main(ActivityThread.java:5017)
09-03 12:27:44.792: E/AndroidRuntime(1248): at java.lang.reflect.Method.invokeNative(Native Method)
09-03 12:27:44.792: E/AndroidRuntime(1248): at java.lang.reflect.Method.invoke(Method.java:515)
09-03 12:27:44.792: E/AndroidRuntime(1248): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
09-03 12:27:44.792: E/AndroidRuntime(1248): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
09-03 12:27:44.792: E/AndroidRuntime(1248): at dalvik.system.NativeStart.main(Native Method)
09-03 12:27:44.792: E/AndroidRuntime(1248): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.drop_android.AndroidGame" on path: DexPathList[[zip file "/data/app/com.drop_android-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.drop_android-2, /system/lib]]
09-03 12:27:44.792: E/AndroidRuntime(1248): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
09-03 12:27:44.792: E/AndroidRuntime(1248): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
09-03 12:27:44.792: E/AndroidRuntime(1248): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
09-03 12:27:44.792: E/AndroidRuntime(1248): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2112)
09-03 12:27:44.792: E/AndroidRuntime(1248): ... 11 more

Console:
[2014-09-03 15:27:40 - Drop-android] Dx
trouble writing output: already prepared
[2014-09-03 15:27:41 - Drop-android] ------------------------------
[2014-09-03 15:27:41 - Drop-android] Android Launch!
[2014-09-03 15:27:41 - Drop-android] adb is running normally.
[2014-09-03 15:27:41 - Drop-android] Performing com.drop_android.AndroidGame activity launch
[2014-09-03 15:27:41 - Drop-android] Uploading Drop-android.apk onto device '192.168.56.101:5555'
[2014-09-03 15:27:41 - Drop-android] Installing Drop-android.apk...
[2014-09-03 15:27:42 - Drop-android] Success!
[2014-09-03 15:27:42 - Drop-android] Starting activity com.drop_android.AndroidGame on device 192.168.56.101:5555
[2014-09-03 15:27:42 - Drop-android] ActivityManager: WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a security risk. Please fix.
[2014-09-03 15:27:43 - Drop-android] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.drop_android/.AndroidGame }


Блин, помогите кто-нибудь, пожалуйста! Серьезно, форумы перерыл, устал уже капец, хз что делать!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.09.2014, 16:30
Ответы с готовыми решениями:

можно ли на делфи написать простейшую игру?
можно ли написать простую игру, по типу майнкрафт\террария? или всё же для этого лучше джава? ...

Помогите написать самую простейшую игру
Помогите написать самую простейшую игру.

Как создать простейшую онлайн браузерной игру для двоих
Добрый день, уважаемые форумчане! Подскажите, пожалуйста, как создать многопользовательскую...

Вылетает ошибка не могу понять из за чего!
При попытке второй раз нажать кнопку Update вылетает ошибка: Exception in thread "AWT-EventQueue-0"...

4
26 / 26 / 4
Регистрация: 02.04.2012
Сообщений: 143
03.09.2014, 16:52 2
Лучший ответ Сообщение было отмечено Phoenix47 как решение

Решение

В логе написано, что "потерялся" класс com.drop_android.AndroidGame. Может быть вы ошиблись где-то в настройках проекта(название класса неправильно где-то или зависимости модулей).
1
0 / 0 / 1
Регистрация: 18.08.2014
Сообщений: 9
03.09.2014, 17:18  [ТС] 3
А как такое вообще может быть? Ведь проект вообще запускается с этого класса - AndroidGame! Да и если я меняю AndroidApplication на ActionBarActivity и убираю initialize, то класс внезапно замечательно находится!.. Загадканама
0
26 / 26 / 4
Регистрация: 02.04.2012
Сообщений: 143
03.09.2014, 17:27 4
Цитата Сообщение от Phoenix47 Посмотреть сообщение
А как такое вообще может быть? Ведь проект вообще запускается с этого класса - AndroidGame! Да и если я меняю AndroidApplication на ActionBarActivity и убираю initialize, то класс внезапно замечательно находится!.. Загадканама
Манифест в студию.
1
0 / 0 / 1
Регистрация: 18.08.2014
Сообщений: 9
03.09.2014, 17:51  [ТС] 5
Спасибо огромное, Salty_Sugar! Сейчас немного передохнул и стал дальше копать и пробовать. Что-то буквально чуть-чуть поделал, в том числе поставил брейкпоинт прямо на строке класса (авось дебаггер поймает). И тут БАЦ! - и на телефоне заработало!! Я такой аж остолбенел от неожиданности)) Вообще ведь ничего не сделал!

Посидел повспоминал. Дело оказалось вот в чем. Я в один из прошлых разов попыток с точно таким же комплектом проектов, заметил на сайте libgdx.ru запись о том, что Java 1.7 не дружит с Андройдом. Ну и тогда поменял в свойствах проекта в Java Compiler версию с 1.7 на 1.6 или 1.5 что ли. В-общем, тогда не заработало (так и хз почему), но этот 1.5 передался в этот комплект проектов. Путаница, в-общем.
Сейчас взял да поменял мимоходом на 1.6 - и заработало! Правда, только на телефоне; в Genymotion так и вылетает. Оба проекта - и Drop-android, и Drop-core должны быть на 1.6 версии.

Вот они - танцы с бубном во всей красе )
В любом случае, Salty_Sugar, спасибо, друг!

P.S. Жаль только, что два дня убил по такой фигне.
0
03.09.2014, 17:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2014, 17:51
Помогаю со студенческими работами здесь

не могу исправить ошибку в коде. в паскале вылетает ошибка.
program Project1; {$APPTYPE CONSOLE} uses SysUtils; type tptz=^tstack; tstack=record

Делаю игру камень-ножницы-бумага Не могу сделать рандом для робота
Делаю игру камень-ножницы-бумага Не могу сделать рандом для робота. Проблема в том, что никаких...

Нужно сделать по заданию.Одна ошибка в 25 строке. Нужна п о м о щ ь
uses crt; const n=3; zag=' Расписание поездов'; ...

Не могу найти простейшую ошибку в методе Main
using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Хотел на модальной форме для кнопки сделать hotkeys, но вылетает ошибка.
procedure TForm3.FormKeyPress(Sender: TObject; var Key: Char); begin case Key of...

Не могу запустить клиент. при запуске клиента battle net вылетает ошибка - agent.exe 0xc0000005
Смысл в том что вдург перестал работать клиент battle net, выдает ошибку Agent.exe - ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru