ListPreference генерирует странное исключение нулевого указателя. - PullRequest
2 голосов
/ 23 сентября 2010

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

У меня есть проверки, чтобы убедиться, что если список доступных календарей пуст, то в ListPreference по-прежнему будет отображаться «Нет доступных»в Spinner.

Я использую ListPreference для отображения Spinner на вкладке Preferences.

Вот файл Preferences.xml:

<ListPreference android:title="Calendar"
android:key="calendars"
android:summary="Calendars to use for saving Appts"
android:selectable="true"
android:entryValues="@array/cal_entryvalues_list_preference"
android:entries="@array/cal_entries_list_preference"
android:defaultValue="0"
android:enabled="true"></ListPreference>

Мои пользователи сообщилиследующая ошибка:

java.lang.NullPointerException на android.widget.ArrayAdapter.createViewFromResource (ArrayAdapter.java: 355) на android.widget.ArrayAdapter.getView (ArrayAdapter.java:323) на android.wid.AbsListView.obtainView (AbsListView.java:1294) в android.widget.ListView.measureHeightOfChildren (ListView.java:1198) в android.widget.ListView.onMeasure (ListView.java:1109) в android.view.View.measure (представление.java: 8171) в android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:3132) в android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java: 1012) в android.widget.LinearLayout.measureVertical (LinearLayout.java:381) в android.widget.LinearLayout.onMeasure (LinearLayout.java:304) в android.view.View.measure (View.java:8171)) в android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:3132) в android.widget.LinearLayout.measureChildBeforeLayout (LinearLayout.java: 1012) в android.widget.LinearLayout.measureVertical (LineavaLid.out).LinearLayout.onMeasure (LinearLayout.java:304) в com.android.internal.widget.WeightedLinearLayout.onMeasure (WeightedLinearLayout.java: 60) в android.view.View.measure (View.java:8171) в android.view.ViewGroup.measureChildWithMargins (ViewGroup.java:3132) в android.widget.FrameLayout.onMeasure (FrameLayout.java:245) в android.view.View.measure (View.java:8171) в android.view.ViewGroup.measureChildWithGarGar.java: 3132) на android.widget.FrameLayout.onMeasure (FrameLayout.java:245) на android.view.View.measure (View.java:8171) на android.view.ViewRoot.executeTraversals (ViewRoot.java:801) в android.view.ViewRoot.handleMessage (ViewRoot.java:1727) в android.os.Handler.dispatchMessage (Handler.java:99) в android.os.Looper.loop (Looper.java): 123) в android.app.ActivityThread.main (ActivityThread.java:4627) в java.lang.reflect.Method.invokeNative (собственный метод) в java.lang.reflect.Method.invoke (Method.java:521) вcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) в com.android.internal.os.ZygoteInit.main (ZygoteInit.java:626) в dalvik.system.NativeStart.main (собственный метод)

Трассировка стека, кажется, указывает на всю внутреннюю работу Android.Там нет ссылки на любой мой код.Это происходит на платформах Android 2.1 и Android 2.2.

К сожалению, мне не удалось воспроизвести ошибку на моем Moto Droid.Из журналов консоли разработчика видно, что это относится к определенным телефонам (например, HTC Incredible).

Есть идеи, что здесь происходит?

...