文件res/xml/preference_news.xml原来是这样的
运行报错
- <?xml version="1.0" encoding="utf-8"?>
- <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
- <SwitchPreference
- android:defaultValue="true"
- android:key="是或者否"
- android:title="4.0新增" />
- <MultiSelectListPreference
- android:dialogTitle="列表多选的对话框标题"
- android:entries="@array/listItem"
- android:entryValues="@array/listItemValue"
- android:key="列表中多选"
- android:summary="列表多选的摘要"
- android:title="列表多选的标题" />
- </PreferenceScreen>
很诡异的错误
- 08-18 03:22:39.880: E/AndroidRuntime(21951): FATAL EXCEPTION: main
- 08-18 03:22:39.880: E/AndroidRuntime(21951): Process: dc.test.hey, PID: 21951
- 08-18 03:22:39.880: E/AndroidRuntime(21951): java.lang.RuntimeException: Unable to start activity ComponentInfo{dc.test.hey/dc.test.hey.activity.preference.NewsPreferenceActivity}: android.view.InflateException: Binary XML file line #9: Error inflating class java.lang.reflect.Constructor
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.ActivityThread.access$800(ActivityThread.java:135)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.os.Handler.dispatchMessage(Handler.java:102)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.os.Looper.loop(Looper.java:136)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.ActivityThread.main(ActivityThread.java:5017)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at java.lang.reflect.Method.invokeNative(Native Method)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at java.lang.reflect.Method.invoke(Method.java:515)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at dalvik.system.NativeStart.main(Native Method)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): Caused by: android.view.InflateException: Binary XML file line #9: Error inflating class java.lang.reflect.Constructor
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.GenericInflater.createItem(GenericInflater.java:397)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.GenericInflater.onCreateItem(GenericInflater.java:417)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:428)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.GenericInflater.rInflate(GenericInflater.java:481)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.GenericInflater.inflate(GenericInflater.java:326)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.GenericInflater.inflate(GenericInflater.java:263)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:272)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:1472)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at dc.test.hey.activity.preference.NewsPreferenceActivity.onCreate(NewsPreferenceActivity.java:35)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.Activity.performCreate(Activity.java:5231)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): ... 11 more
- 08-18 03:22:39.880: E/AndroidRuntime(21951): Caused by: java.lang.reflect.InvocationTargetException
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at java.lang.reflect.Constructor.constructNative(Native Method)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.GenericInflater.createItem(GenericInflater.java:383)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): ... 22 more
- 08-18 03:22:39.880: E/AndroidRuntime(21951): Caused by: java.lang.NullPointerException
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:215)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.content.res.Resources.getTextArray(Resources.java:448)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.content.res.TypedArray.getTextArray(TypedArray.java:629)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.MultiSelectListPreference.onGetDefaultValue(MultiSelectListPreference.java:211)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.Preference.<init>(Preference.java:268)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.DialogPreference.<init>(DialogPreference.java:69)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.DialogPreference.<init>(DialogPreference.java:90)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): at android.preference.MultiSelectListPreference.<init>(MultiSelectListPreference.java:49)
- 08-18 03:22:39.880: E/AndroidRuntime(21951): ... 25 more
这个文件包含了俩控件,SwitchPreference和MultiSelectListPreference;删掉任何一个都可以运行,放一 起就出问题。
然后http://stackoverflow.com/questions/11090304 /multiselectlistpreference-example
增加了一个空的默认值android:defaultValue="@array/empty_arr"
定义空array
<string-array name="empty_arr"/>就可以运行了。。。。

点开

好神奇的说。。。。
--
senRsl
@Beijing TongZhou
2014年08月18日15:43:06
senRsl
@Beijing TongZhou
2014年08月18日15:43:06
没有评论 :
发表评论