forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Android (http://forum.boolean.name/forumdisplay.php?f=150)
-   -   Помогите новичку! (http://forum.boolean.name/showthread.php?t=16699)

ratum 25.04.2012 17:19

Помогите новичку!
 
Вложений: 3
Недавно перешёл с Nokia 5310 на Samsung GT I-9001. До этого работал над рогаликом, который успешно писался на MidletPascal. Хочу портировать всё под андроид, но опыта работы с java нет.
Начал делать проект по аналогии с книгой Pragmatic Hello Android. Застрял практически в начале: при вызове метода из другого класса (getTile из MapView) , который возвращает элемент массива, приложение крашится.
Понимаю, что ошибка мелкая, но сам ни черта ни понимаю:)

PS. Посоветуйте книги по ооп на Java (можно и на английском).

cyberblut 25.04.2012 17:42

Ответ: Помогите новичку!
 
Ну так алгоритм простой, не надо лениться:

1. Посмотреть текст ошибки
2. Подебажить
3. Спросить, указав всю инфу

ratum 25.04.2012 17:52

Ответ: Помогите новичку!
 
В том то и дело, что компилирует без ошибок.

cyberblut 25.04.2012 18:50

Ответ: Помогите новичку!
 
Цитата:

Сообщение от ratum (Сообщение 226446)
В том то и дело, что компилирует без ошибок.

Ну так если падает, значит пишет где и почему упало.

Жека 26.04.2012 11:20

Ответ: Помогите новичку!
 
Крашится скорее всего из-за того, что твой MapView ещё не создан на момент обращения к его методу. Активити нельзя создавать через NEW.

В какой среде разработки ты делаешь проект? Если в эклипсе, то выкладывай всю папку с проектом, а то эти тхт-шки вынуждают всё самому доделывать, а нафиг это нужно.

cyberblut 26.04.2012 12:36

Ответ: Помогите новичку!
 
Цитата:

Сообщение от Жека (Сообщение 226524)
Крашится скорее всего из-за того, что твой MapView ещё не создан на момент обращения к его методу. Активити нельзя создавать через NEW.

В какой среде разработки ты делаешь проект? Если в эклипсе, то выкладывай всю папку с проектом, а то эти тхт-шки вынуждают всё самому доделывать, а нафиг это нужно.

На сколько я обратил внимание - MapView не активити, а вьюха.

ratum 26.04.2012 18:23

Ответ: Помогите новичку!
 
Вложений: 1
В основном на телефоне через AIDE пишу.
Вроде переписал код на Eclipse. Проверить не могу: после очистки workspace эмулятор андроид ведёт себя неадекватно. Останавливается на шаге Waiting for HOME ('android.process.acore') to be launched...

Жека 27.04.2012 10:08

Ответ: Помогите новичку!
 
Тестировать конечно лучше на настоящем телефоне.
Ошибка у тебя не в коде оказалась, а в том что ты не указал все свои активити в манифесте.
В файле AndroidManifest.xml нужно указывать все активити, которые ты собираешься запускать.
Я дописал
Код:

<activity
    android:name=".Game"
    android:label="@string/app_name" >
</activity>

И всё заработало, увидел поле с зелёными циферками.
Про вьюху не заметил когда писал выше.

ratum 27.04.2012 15:19

Ответ: Помогите новичку!
 
Вложений: 1
Совсем забыл про манифест. Но проблема не в нём. В оригинале (на AIDE) манифест был дописан. И не работало.
При замене int на MapClass опять крашится. В чём причина?
И последний: как убрать полосу состояния при включённом приложении?

moka 27.04.2012 15:29

Ответ: Помогите новичку!
 
Активити создаётся автоматически при старте прилоежения самой ОСью. Тебе не нужно создавать активити самому. В конструкторе активити, тебе нужно указать View, он может быть лайоутом генерированным в эклипсе, или твоим классом. Но тогда он должен иметь в себе реализацию всех методов и т.п.

Также, если ты хочешь заняться графикой, советую сразу смотреть в сторону ОГЛ либо канвасы.

ЗЫ, до того как заниматься портами, пройдись по туторам от гугла, разберись как андройд устроен, т.к. это очень отличается от всего другого..

Жека 28.04.2012 06:16

Ответ: Помогите новичку!
 
Вложений: 1
Цитата:

Сообщение от ratum (Сообщение 226636)
Совсем забыл про манифест. Но проблема не в нём. В оригинале (на AIDE) манифест был дописан. И не работало.
При замене int на MapClass опять крашится. В чём причина?

Причина скорей всего в том что перед обращением к экземпляру MapClass ты не создал его.
Выкладываю тебе код исправленный, в нём всё работает с MapClass.
Цитата:

И последний: как убрать полосу состояния при включённом приложении?
Я знаю два способа, оба включил в твою прогу.
1. Прописать в AndroidManifest.xml строчку-параметр для активити
Код:

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
2. В коде для метода активити onCreate(Bundle b) написать две строки
Код:

super.onCreate(b);
//полноэкранный режим
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

Цитата:

ЗЫ, до того как заниматься портами, пройдись по туторам от гугла, разберись как андройд устроен, т.к. это очень отличается от всего другого
Прислушайся к совету, разберись в простом, потом переходи к своим задумкам.

ratum 28.04.2012 13:06

Ответ: Помогите новичку!
 
Спасибо всем огромное! Сам без помощи не разобрался бы. Буду выкладывать новые вопросы по мере появления:)

ratum 05.05.2012 15:53

Ответ: Помогите новичку!
 
Вложений: 1
Дописал код, добавил геттеры и сеттеры, но метод fillArea перестал работать. Или не правильно обращаюсь к массиву? Где я ошибся?

Как работать с изобржениями (загрузка, вывод) ? Как работать с таилсетами? На developer.android.com ничего не понимаю:)

ratum 09.05.2012 15:09

Ответ: Помогите новичку!
 
Проблемы решены! Есть ли стандартные методы для работы с таилсетами(создание маленького нового изображения из одного большого)?

ratum 14.05.2012 23:27

Ответ: Помогите новичку!
 
В активити Game создан экземпляр hero класса Hero. При нажатии кнопки в MapView(view для Game) создаётся активити Inventory. Как из Inventory получить доступ к hero?


Часовой пояс GMT +4, время: 02:46.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot