Неожиданное исключение ClassCastException с findViewById - PullRequest
3 голосов
/ 29 декабря 2010

Я играю с «поисковым словарем», чтобы заняться разработкой для Android.

Моя проблема в том, что я получаю ClassCastException при изменении макетов XML.

Я предполагаю, что файл R устарел, но странно то, что у меня все еще есть проблема даже после ее воссоздания.

Вот соответствующий фрагмент кода и журнала:

Файл журнала:

Вызвано: java.lang.ClassCastException: android.widget.ImageButton E / AndroidRuntime (438): в eu.accleaner.android.WordActivity.onCreate (WordActivity.java:87)

Инкриминированная строка в Задании:

mDefinition = (TextView) findViewById(R.id.definition);

Заранее спасибо за помощь.

Приветствия

Винсент

Ответы [ 3 ]

3 голосов
/ 11 октября 2011

У меня была похожая проблема.R.java генерирует идентификаторы на основе android: id в xml: <br/>public static final int imageButton01=0x7f050001; <br/>public static final int definition=0x7f050002;

Когда я добавляю новое изображение, кнопка R.java обновляется до <br/>public static final int imageButton01=0x7f050001; <br/>public static final int imageButton02=0x7f050002; <br/>public static final int definition=0x7f050003;

Из-за проблемы синхронизации R.id.definition возвращаетстарый идентификатор 0x7f050002 в mDefinition = (TextView) findViewById(R.id.definition); Но он соответствует другому элементу (ImageButton02) в соответствии с обновленной R.java.

Итак, у нас есть ClassCastException

3 голосов
/ 29 декабря 2010

Как это выглядит, в XML есть ImageButton с идентификатором «Definition», и вы пытаетесь привести его к TextView. Измените приведение TextView к ImageButton.

0 голосов
/ 27 марта 2014

Обходной путь для исправления: назначьте новое значение 'id' в XML-формате Layout и findViewById ().

Скорее всего, это ошибка.

...