Подтвердить что ты не робот

Исходный ресурс Android не найден?

У меня возникла странная проблема с использованием findViewById (id). Он возвращается с ресурсом, который не найден, хотя ресурс определенно существует. Это текстовое представление в макете рядом с другим текстовым просмотром, одно из текстовых просмотров, которое я могу найти по id, а другое показывает, что ресурс не найден. Есть ли причина, по которой это может произойти?

4b9b3361

Ответ 1

Попробуйте выполнить очистку своего проекта или отправьте код.

Иногда идентификатор не восстанавливается правильно, если вы используете Eclipse. Это требует, чтобы проект был очищен и иногда обновлялся.

Ответ 2

Убедитесь, что вы на самом деле не пытаетесь установить текст на число и ожидаете, что он автоматически преобразуется в строку.

Ответ 3

Сообщение об исключении не очень описательно. Скорее всего, случай, когда вы пытаетесь применить значение int к Строке, применяя приведенное ниже изменение, исправил проблему для меня.

Код перед исправлением:

 itemPrice.setText(foodMenuItems.get(position).getItemPrice());

Код после исправления:

 itemPrice.setText(Integer.toString(foodMenuItems.get(position).getItemPrice()));

Ответ 4

textViewCount.setText(someArray.size()); была моей проблемой.

Просто позвоните toString();, чтобы устранить проблему.

    Integer size = mSomeArray.size();
    textViewReplyCount.setText(size.toString());

Ответ 5

Просто, чтобы прояснить ответ Терры Кайна, поскольку я видел, как это часто случается с людьми; TextView и другие текстовые компоненты, имеют 2 setText() функции с 1 параметром.

Один из них имеет String и один с int. int, очевидно, для строки Resource, такой как R.string.myString - которая, тем, кто не знал, R.exm всегда представляется как int. Строка предназначена для размещения там строки.

Так, например, я хочу поместить int x = 1; в textView. Выполнение mTextView.setText(x); приведет к тому, что textView будет использовать функцию ресурса, и поскольку, вероятно, нет ресурса с идентификатором 1, он будет генерировать исключение. Ресурс не найден. Если вы хотите поместить int или любое число в функцию setText(), обязательно преобразуйте его в String (x+"") или (x.toString()), чтобы сделать трюк для вас.

Надеюсь, это сэкономило некоторое время людям.

Ответ 6

Убедитесь, что программные атрибуты, которые недоступны, не заданы. У меня была такая же проблема, и причина была в RemoteView.setFloat(id,"setWeight",1.0f); для LinearLayout, которая не поддерживалась Android до 4.x К сожалению, сообщение об ошибке было не очень полезно для этого.