Ошибка надувания GridView на планшете - PullRequest
1 голос
/ 12 февраля 2012

Я использую GridView в своем приложении для Android.Все отлично работает на моем телефоне, но когда я попытался запустить приложение на эмуляторе планшета, оно зависало при запуске.

Ошибка E/AndroidRuntime(466): java.lang.RuntimeException: Unable to start activity ComponentInfo{****/***.Main}: java.lang.RuntimeException: Unable to start activity ComponentInfo{***/***.views.calendar.CalendarView}: android.view.InflateException: Binary XML file line #42: Error inflating class android.widget.GridView В строке # 42 есть просто тег <GridView>.

Затем трассировка стека говорит Caused by: android.view.InflateException: Binary XML file line #42: Error inflating class android.widget.GridView, Caused by: java.lang.reflect.InvocationTargetException и заканчивается:

02-11 23:57:17.079: E/AndroidRuntime(466): Caused by: android.content.res.Resources$NotFoundException: File  from drawable resource ID #0x1020004
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.content.res.Resources.loadDrawable(Resources.java:1874)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.widget.AbsListView.<init>(AbsListView.java:711)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.widget.GridView.<init>(GridView.java:76)
02-11 23:57:17.079: E/AndroidRuntime(466):  at android.widget.GridView.<init>(GridView.java:72)

Я не использую никакие LayoutParams, мой макет xml выглядит так:*

Что я не понимаю, так это то, что GridView работает на телефоне и не работает на планшете ...

Заранее спасибо за любые подсказки ...

1 Ответ

3 голосов
/ 12 февраля 2012
android:listSelector="@android:id/empty"

Насколько мне известно, атрибут listSelector ожидает ссылку на объект рисования, а не идентификатор.@android:id/empty может использоваться для объявления необязательного «пустого» представления для ListView и GridView, и я уверен, что оно не предназначено для использования, как описано выше.См. ListActivity для более подробной информации.Попробуйте сослаться на фактический объект рисования (или цвет), например @null или @android:color/transparent, чтобы сделать селектор «невидимым» (или просто установите высоту на «0»).

В качестве альтернативы, вы можете использовать ресурсклассификаторы, которые не позволяют планшету найти соответствующий ресурс.Прочитайте объяснение «Как Android находит наиболее подходящий ресурс» , чтобы узнать больше подробностей.Однако, поскольку вы не ссылаетесь на нарисованный ресурс непосредственно в объявлении GridView, я сомневаюсь, что это проблема.

...