Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Мобильные ОС (Android, iOS, Windows Phone)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2013, 18:06   #1
AIR_3
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 12
По умолчанию Android. Падает приложение.

Доброго времени суток, господа программисты.

Начал изучение программирования под андроид, дошел до контекстных меню и столкнулся с такой проблемой. Программа на этапе выполнения, какой бы пункт меню я не выбрал бы просто падает с ошибкой "The application ContextMenu has stopped unexpectedly. Please try again." Пробовал и на разных версиях AVD и на реальном устройстве. Всё то же самое.
Скидываю код:


main.xml :

Код:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/tvColor"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="50dp"
        android:layout_marginTop="50dp"
        android:text="@string/NameTextColor"
        android:textSize="26sp" >
    </TextView>

    <TextView
        android:id="@+id/tvSize"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/NameTextSize"
        android:textSize="22sp" >
    </TextView>

</LinearLayout>
MainActivity.java :

Код:
package ru.startandroid.develop.contextmenu;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	
	TextView tvColor, tvText;
	
	final int MENU_COLOR_RED 	= 1;
	final int MENU_COLOR_GREEN 	= 2;
	final int MENU_COLOR_BLUE 	= 3;
			
	final int MENU_SIZE_22 		= 4;
	final int MENU_SIZE_26		= 5;
	final int MENU_SIZE_30		= 6;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		TextView tvColor	= (TextView) findViewById(R.id.tvColor);
		TextView tvText 	= (TextView) findViewById(R.id.tvSize);
		
		registerForContextMenu(tvColor);
		registerForContextMenu(tvText);
	}
	
	@Override
	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo info) {
		switch(v.getId()) {
			case R.id.tvColor:
				menu.add(0, MENU_COLOR_RED, 0, "Red");
				menu.add(0, MENU_COLOR_GREEN, 0, "Green");
				menu.add(0, MENU_COLOR_BLUE, 0, "Blue");
				break;
			case R.id.tvSize:
				menu.add(0, MENU_SIZE_22, 0, "22");
				menu.add(0, MENU_SIZE_26, 0, "26");
				menu.add(0, MENU_SIZE_30, 0, "30");
				break;
		}
	}
	
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		switch (item.getItemId()) {
			//Обработка для первого контекстного меню tvColor
			case MENU_COLOR_RED:
				tvColor.setTextColor(Color.RED);
				break;
			case MENU_COLOR_BLUE:
				tvColor.setTextColor(Color.BLUE);
				break;
			case MENU_COLOR_GREEN:
				tvColor.setTextColor(Color.GREEN);
				break;
			//Обработка для второго контекстного меню tvText
			case MENU_SIZE_22:
				tvText.setTextSize(22);
				break;
			case MENU_SIZE_26:
				tvText.setTextSize(26);
				break;
			case MENU_SIZE_30:
				tvText.setTextSize(30);
				break;
				}
		
		return super.onContextItemSelected(item);
		
	}



}
Кто знает в чем проблема, подскажите пожалуйста, так как достойных ответов на просторах интернета по этому вопросу, я не нашел Заранее благодарен.

Последний раз редактировалось AIR_3; 09.07.2013 в 20:19.
AIR_3 вне форума Ответить с цитированием
Старый 09.07.2013, 19:21   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Пожалуйста используйте "adb logcat" в коммандной строке. Он вам предоставить достаточную информацию об ошибке и даже строке и имени файла где она находится.
BOBAH13 вне форума Ответить с цитированием
Старый 09.07.2013, 19:27   #3
AIR_3
Пользователь
 
Регистрация: 19.04.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Пожалуйста используйте "adb logcat" в коммандной строке. Он вам предоставить достаточную информацию об ошибке и даже строке и имени файла где она находится.
Да их там вываливается просто немереное количество. Вот непосредственное сам лог :

Код:
07-09 15:24:55.103: D/AndroidRuntime(397): Shutting down VM
07-09 15:24:55.103: W/dalvikvm(397): threadid=1: thread exiting with uncaught exception (group=0x40015560)
07-09 15:24:55.113: E/AndroidRuntime(397): FATAL EXCEPTION: main
07-09 15:24:55.113: E/AndroidRuntime(397): java.lang.NullPointerException
07-09 15:24:55.113: E/AndroidRuntime(397): 	at ru.startandroid.develop.contextmenu.MainActivity.onContextItemSelected(MainActivity.java:59)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.app.Activity.onMenuItemSelected(Activity.java:2209)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2785)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:143)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:137)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:873)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.widget.AdapterView.performItemClick(AdapterView.java:284)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.widget.ListView.performItemClick(ListView.java:3513)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.widget.AbsListView$PerformClick.run(AbsListView.java:1812)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.os.Handler.handleCallback(Handler.java:587)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.os.Handler.dispatchMessage(Handler.java:92)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.os.Looper.loop(Looper.java:123)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at android.app.ActivityThread.main(ActivityThread.java:3683)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at java.lang.reflect.Method.invokeNative(Native Method)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at java.lang.reflect.Method.invoke(Method.java:507)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-09 15:24:55.113: E/AndroidRuntime(397): 	at dalvik.system.NativeStart.main(Native Method)
Мне как начинающему программисту в этой сфере, тяжело с таким разобраться Буду рад любой помощи
AIR_3 вне форума Ответить с цитированием
Старый 09.07.2013, 20:21   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а помоему все ясно,
Цитата:
07-09 15:24:55.113: E/AndroidRuntime(397): java.lang.NullPointerException
тип исключения, где то ссылка не указывает ни на что.
Цитата:
07-09 15:24:55.113: E/AndroidRuntime(397): at ru.startandroid.develop.contextmenu .MainActivity.onContextItemSelected (MainActivity.java:59)
мечто возникновения(в конце файл и его строка)

а двльше просто дерево вызовов
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Падает плагин lleonid Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 0 01.07.2013 23:57
приложение под Android на языке JAVA Yurik555 Фриланс 1 01.05.2013 19:27
Падает VS ZoxWatt Windows 0 05.12.2012 20:55
Почему С++ падает Sylar9 Общие вопросы C/C++ 5 27.03.2012 01:50
приложение iOS/Android Ultramaryn Фриланс 0 24.01.2012 12:17