Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Phoenix47
0 / 0 / 1
Регистрация: 18.08.2014
Сообщений: 9
#1

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

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

Всем привет! Дело такое.

Только-только начал учиться работать с 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)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2014, 16:30
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не могу сделать простейшую Libgdx-игру, одна и та же ошибка вылетает (Программирование Android):

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

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

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

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

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

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

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

Решение

В логе написано, что "потерялся" класс com.drop_android.AndroidGame. Может быть вы ошиблись где-то в настройках проекта(название класса неправильно где-то или зависимости модулей).
1
Phoenix47
0 / 0 / 1
Регистрация: 18.08.2014
Сообщений: 9
03.09.2014, 17:18  [ТС] #3
А как такое вообще может быть? Ведь проект вообще запускается с этого класса - AndroidGame! Да и если я меняю AndroidApplication на ActionBarActivity и убираю initialize, то класс внезапно замечательно находится!.. Загадканама
0
Salty_Sugar
26 / 26 / 4
Регистрация: 02.04.2012
Сообщений: 142
03.09.2014, 17:27 #4
Цитата Сообщение от Phoenix47 Посмотреть сообщение
А как такое вообще может быть? Ведь проект вообще запускается с этого класса - AndroidGame! Да и если я меняю AndroidApplication на ActionBarActivity и убираю initialize, то класс внезапно замечательно находится!.. Загадканама
Манифест в студию.
1
Phoenix47
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.09.2014, 17:51
Привет! Вот еще темы с решениями:

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

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

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

Libgdx. Нужно сделать паузу
Имеется класс типа: class ApplicationWindow extends ApplicationAdapter { ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru