2012-02-23 2 views
0

У меня странная проблема. Во время работы моего Android приложения, я получаю исключение:Android - RelativeLayout завышена как кнопка?

java.lang.ClassCastException: android.widget.Button cannot be cast to android.widget.RelativeLayout 

код, где я пытаюсь получить RelativeLayout

v = inflater.inflate(R.layout.home, null); 
RelativeLayout btn = (RelativeLayout) v.findViewById(R.id.my_button); 

в XML, у меня есть это:

<RelativeLayout     
       android:id="@+id/my_button" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:background="@drawable/button_selector"/> 

While отладки, я заметил, что в v есть кнопка с mID равна R.id.my_button.

Хотя, когда я меняю id в xml и код на что-либо еще, я получаю NullPointerException.

Любые идеи, почему это происходит?

EDIT: Возможно, это будет полезно, если добавить, что в старой версии этого файла была кнопка, но была заменена RelativeLayout. Я использую GIT. Проект был очищен много раз, и затмение также было перезапущено.

+0

Насколько это возможно, вы управляете двумя отдельными проектами? один для 4+ и один для всего остального. – Woodsy

+0

Нет, это один проект. Я просто пытался запустить его на разных андроидах. – Seraphis

+0

Ах, моя ошибка! Я получил это ClassCastException даже на низких андроидах. Но почему в xml это RelativeLayout, а в объекте View это кнопка? (Я буду обновлять основной пост) – Seraphis

ответ

0

Проблема заключалась в том, что я создал еще один файл макета, о котором я забыл, и это было для той же самой операции byt, что и в другой конфигурации. Задача решена.

0

Удалите файл R.Java и после его повторного запуска запустите приложение, оно будет работать нормально.

+0

Я очистил проект. Он удалил файл R.java и воссоздал его. Никакой прогресс в этой задаче. – Seraphis

+0

Обычно я вручную удаляю его, и он всегда работает для меня. – noob

+0

Я пробовал, но никакой разницы. – Seraphis

Смежные вопросы