У некоторых пользователей возникают проблемы с приложением, загрузкой ресурсов, я не могу воспроизвести. Загрузка изображения/рисования

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

Resources$NotFoundException: Файл из идентификатора ресурса Drawable # 0X10200004

в строке 28 файла Binary XML inflate, который ссылается на @drawable/pl

файл pl.bmp находится в каталоге res/drawable и не поврежден, поэтому ресурс существует.

Единственное, что я вижу, что кажется странным, это сгенерированный файл R.java, который ссылается на этот чертеж с идентификатором # 0X7F0200009, и нет идентификаторов ссылок на файлы, которые начинаются с # 0X1 .... вообще ... поэтому я я не уверен, как и почему эти конкретные пользователи даже получают этот идентификатор в качестве ссылки для рисования. В классе рисования R.Java есть #0X7f0200004, но это совершенно другая графика.

Это, безусловно, происходит с некоторыми людьми, которые обновились, и я подозреваю, что с некоторыми людьми, которые купили новый. Я не могу воспроизвести это поведение ни на одном устройстве, к которому у меня есть доступ, или на эмуляторе, но у некоторых людей это явно происходит.

У кого-нибудь есть идеи? Обновление не загружает нужный файл R.java? Как это вообще возможно? Сначала я подумал, что это может быть конфликт имен файлов, поскольку в более ранних выпусках p был как bmp, а выпуск, в котором это началось, я изменил его на png, но я обязательно удалил pl.bmp перед сборкой и впоследствии переименовал его в pl, так что нет никакого способа, даже если бы старые файлы p как .bmp, так и .png были каким-то образом на устройстве, они бы не столкнулись, но это, похоже, не проблема.

Любая помощь будет принята с благодарностью.

Заранее спасибо.


person Speckpgh    schedule 24.09.2011    source источник
comment
Насколько велико изображение (как в пикселях, так и в размере файла)? Если это очень большое изображение, которое превышает размер растровой памяти, доступной устройству (это отличается для разных устройств), то вы получите такие ошибки, по сути, сам ресурс найден, но не может быть загружен в программу, и тогда программа жалуется он не может найти ресурс.   -  person Joseph Earl    schedule 24.09.2011
comment
Изображение очень маленькое.. Например, 20x20 и размер менее 1k. Так что это не предел размера.   -  person Speckpgh    schedule 25.09.2011
comment
Я также поместил элемент, который содержит это изображение, в горизонтальную прокрутку, что, когда начались проблемы, но я не знаю, почему это повлияет на инфляцию. Это не каждый пользователь, но это определенно разумное число, и это приводит в бешенство.   -  person Speckpgh    schedule 25.09.2011
comment
Что ж, я провел дополнительное расследование, и теперь я запутался больше, чем КОГДА-ЛИБО. Оказывается, строка, на которой он умирал с notfoundException, выглядит следующим образом: setButtonDrawable(android.R.id.empty); Что для меня не имеет смысла ... как он может не найти чертеж, привязанный к идентификатору, который является частью ОС, вдруг для пользователей, у которых все работало отлично ?? Так что оказывается, что это вообще не имеет ничего общего с моими изображениями, но эта строка ... так что я остаюсь с предположением, что каким-то образом вложение этого элемента в горизонтальную прокрутку каким-то образом щекочет ошибку в ОС определенных аппаратных устройств. Фу!   -  person Speckpgh    schedule 26.09.2011
comment
Я изменил приведенное выше, чтобы использовать прозрачный рисунок, который я предоставил вместо id.clear, который является частью ОС, и до сих пор у меня не было никаких сообщений об ошибках... но вчера было воскресенье, поэтому я не знаю, сколько людей обновилось и т. д. Поскольку я не могу воспроизвести проблему на любом устройстве или эмуляторе, который у меня есть, я не могу сказать, что проблема решена, если это не сработает, я не знаю, что делать почему перемещение элемента в подпредставление в XML внезапно привело к тому, что инфлятор не нашел объект/рисуемый объект, который является частью ОС и который раньше прекрасно находил?   -  person Speckpgh    schedule 26.09.2011


Ответы (1)


Ну, это удивительно похоже на что-то, связанное со ссылкой OS Drawable, привязанной к android.R.id.empty.

Не спрашивайте меня, почему это работало нормально, а затем внезапно перестало работать для некоторых пользователей после того, как я изменил определение XML, но я удалил ссылку на это и теперь вместо этого использую свою собственную прозрачную графику, и все работает нормально. .

person Speckpgh    schedule 27.09.2011