Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

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

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

03.09.2014, 16:30. Просмотров 1272. Ответов 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 }


Блин, помогите кто-нибудь, пожалуйста! Серьезно, форумы перерыл, устал уже капец, хз что делать!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2014, 16:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу сделать простейшую Libgdx-игру, одна и та же ошибка вылетает (Программирование Android):

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

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

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

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

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

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

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

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

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

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

Libgdx. Нужно сделать паузу - Java SE
Имеется класс типа: class ApplicationWindow extends ApplicationAdapter { private Box2DDebugRenderer renderer; private World...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.09.2014, 17:51
Ответ Создать тему
Опции темы

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