ListPreference 抛出一个奇怪的空指针异常

发布于 2024-09-24 06:12:23 字数 2822 浏览 0 评论 0原文

我有一个应用程序,可以获取可用日历的列表并显示 他们在微调器中。

我进行了检查以确保可用的日历列表是否为空, 那么 ListPreference 仍将在微调器中显示“无可用”。

我正在使用 ListPreference 在中显示 Spinner 首选项选项卡。

这是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.widget.AbsListView.obtainView(AbsListView.java:1294) 在 android.widget.ListView.measureHeightOfChildren (ListView.java:1198) 在 android.widget.ListView.onMeasure(ListView.java:1109) 在 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(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(LinearLayout.java:381) 在 android.widget.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.measureChildWithMargins(ViewGroup.java:3132) 在 android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 在 android.view.View.measure(View.java:8171) 在 android.view.ViewRoot.performTraversals(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(Native Method)

堆栈跟踪似乎指向 Android 的所有内部工作。 没有引用我的任何代码。这发生在 Android 2.1 以及 Android 2.2 平台。

不幸的是,我无法在我的 Moto 上重现该错误 机器人。从开发者控制台日志看来,这是特定于 某些手机​​(例如:HTC Incredible)。

知道这是怎么回事吗?

I have an app that obtains a list of available Calendars and displays
them in the Spinner.

I have checks to ensure that if the available Calendar list is empty,
then ListPreference will still display "None available" in the Spinner.

I am using the ListPreference to display the Spinner in the
Preferences tab.

Here is the 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>

My users have reported the following error:

java.lang.NullPointerException
at
android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:
355)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
at android.widget.AbsListView.obtainView(AbsListView.java:1294)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1198)
at android.widget.ListView.onMeasure(ListView.java:1109)
at android.view.View.measure(View.java:8171)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:
1012)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
at android.view.View.measure(View.java:8171)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:
1012)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:381)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:304)
at
com.android.internal.widget.WeightedLinearLayout.onMeasure(WeightedLinearLayout.java:
60)
at android.view.View.measure(View.java:8171)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
at android.view.View.measure(View.java:8171)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:245)
at android.view.View.measure(View.java:8171)
at android.view.ViewRoot.performTraversals(ViewRoot.java:801)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit
$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)

The stack trace seems to be pointed all internal workings of Android.
There is no reference to any of my code. This is happening on
Android 2.1 as well as Android 2.2 platforms.

Unfortunately, I have not been able to reproduce the error on my Moto
Droid. It appears from Developer Console logs that this is specific to
certain phones (e.g: HTC Incredible).

Any idea what is going on here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文