2016-07-23 44 views
-1

我嘗試了Java代碼極客的示例代碼Android Settings ExampleListPreference標記導致我的應用程序崩潰

我有當我點擊浮動的操作欄的設置有問題:應用程序崩潰是由於:

致命異常:主要
過程:com.sano.tamer.androidsettings,PID:32035
java.lang.RuntimeException:無法啓動活動
ComponentInfo {com.sano.tamer.androidsettings/com.sano.tamer.androidsettings.SettingsActivity}:android.view.InflateException:二進制XML文件行#14:錯誤膨脹類java。 lang.reflect.Constructor

當我評論ListPreference標記,它的工作原理,並打開偏好活動,我複製和粘貼的偏好文件,所以有什麼問題? 我使用的是Android 2.1.2工作室

謝謝

我的設備是華碩Fonepad 7 FE375CG,運行奇巧

這裏是完全錯誤日誌:

07-23 07:06:28.629 5034-5034/com.sano.tamer.androidsettings E/AndroidRuntime: FATAL EXCEPTION: main 
Process: com.sano.tamer.androidsettings, PID: 5034 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sano.tamer.androidsettings/com.sano.tamer.androidsettings.SettingsActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class java.lang.reflect.Constructor 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2318) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396) 
    at android.app.ActivityThread.access$800(ActivityThread.java:139) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:149) 
    at android.app.ActivityThread.main(ActivityThread.java:5252) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:515) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class java.lang.reflect.Constructor 
    at android.preference.GenericInflater.createItem(GenericInflater.java:397) 
    at android.preference.GenericInflater.onCreateItem(GenericInflater.java:417) 
    at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:428) 
    at android.preference.GenericInflater.rInflate(GenericInflater.java:481) 
    at android.preference.GenericInflater.rInflate(GenericInflater.java:493) 
    at android.preference.GenericInflater.inflate(GenericInflater.java:326) 
    at android.preference.GenericInflater.inflate(GenericInflater.java:263) 
    at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:272) 
    at android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:1472) 
    at com.sano.tamer.androidsettings.SettingsActivity.onCreate(SettingsActivity.java:11) 
    at android.app.Activity.performCreate(Activity.java:5403) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)  
    at android.app.ActivityThread.access$800(ActivityThread.java:139)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:149)  
    at android.app.ActivityThread.main(ActivityThread.java:5252)  
    at java.lang.reflect.Method.invokeNative(Native Method)  
    at java.lang.reflect.Method.invoke(Method.java:515)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)  
    at dalvik.system.NativeStart.main(Native Method)  
Caused by: java.lang.reflect.InvocationTargetException 
    at java.lang.reflect.Constructor.constructNative(Native Method) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at android.preference.GenericInflater.createItem(GenericInflater.java:383) 
    at android.preference.GenericInflater.onCreateItem(GenericInflater.java:417)  
    at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:428)  
    at android.preference.GenericInflater.rInflate(GenericInflater.java:481)  
    at android.preference.GenericInflater.rInflate(GenericInflater.java:493)  
    at android.preference.GenericInflater.inflate(GenericInflater.java:326)  
    at android.preference.GenericInflater.inflate(GenericInflater.java:263)  
    at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:272)  
    at android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:1472)  
    at com.sano.tamer.androidsettings.SettingsActivity.onCreate(SettingsActivity.java:11)  
    at android.app.Activity.performCreate(Activity.java:5403)  
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)  
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)  
    at android.app.ActivityThread.access$800(ActivityThread.java:139)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:149)  
    at android.app.ActivityThread.main(ActivityThread.java:5252)  
    at java.lang.reflect.Method.invokeNative(Native Method)  
    at java.lang.reflect.Method.invoke(Method.java:515)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)  
    at dalvik.system.NativeStart.main(Native Method)  
Caused by: java.lang.NullPointerException 
    at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:215) 
    at android.content.res.Resources.getTextArray(Resources.java:454) 
    at android.content.res.TypedArray.getTextArray(TypedArray.java:629) 
    at android.preference.ListPreference.<init>(ListPreference.java:51) 
    at java.lang.reflect.Constructor.constructNative(Native Method)  
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)  
    at android.preference.GenericInflater.createItem(GenericInflater.java:383)  
    at android.preference.GenericInflater.onCreateItem(GenericInflater.java:417)  
    at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:428)  
    at android.preference.GenericInflater.rInflate(GenericInflater.java:481)  
    at android.preference.GenericInflater.rInflate(GenericInflater.java:493)  
    at android.preference.GenericInflater.inflate(GenericInflater.java:326)  
    at android.preference.GenericInflater.inflate(GenericInflater.java:263)  
    at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:272)  
    at android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:1472)  
    at com.sano.tamer.androidsettings.SettingsActivity.onCreate(SettingsActivity.java:11)  
    at android.app.Activity.performCreate(Activity.java:5403)  
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2270)  
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2396)  
    at android.app.ActivityThread.access$800(ActivityThread.java:139)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1293)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:149)  
    at android.app.ActivityThread.main(ActivityThread.java:5252)  
    at java.lang.reflect.Method.invokeNative(Native Method)  
    at java.lang.reflect.Method.invoke(Method.java:515)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)  
    at dalvik.system.NativeStart.main(Native Method)  
+0

分享您的xml代碼 – ShivBuyya

回答

0

錯誤是在這裏發生的事情:

Caused by: java.lang.NullPointerException 
    at android.content.res.AssetManager.getResourceTextArray(AssetManager.java:215) 
    at android.content.res.Resources.getTextArray(Resources.java:454) 
    at android.content.res.TypedArray.getTextArray(TypedArray.java:629) 
    at android.preference.ListPreference.<init>(ListPreference.java:51) 

所以,它似乎是讀取TextArray時爲空指針。

展望佈局XML,我可以看到你的ListPreference使用兩個數組:

<ListPreference 
    ... 
    android:entries="@array/entries_text" 
    android:entryValues="@array/entries_values" 
    ... /> 

所以,仔細檢查你的文件res/values/string.xml並確認你已經兩個陣列創建:entries_textentries_values

<string-array name="entries_text"> 
    <item>entries 1</item> 
    <item>entries 2</item> 
    <item>entries 3</item> 
</string-array> 

<string-array name="entries_values"> 
    <item>1</item> 
    <item>2</item> 
    <item>3</item> 
</string-array> 
+0

您的回答非常有幫助,它解決了我的問題。 問題是我下載了代碼示例,發現數組條目和它的值在一個單獨的文件中,而不是在strings.xml文件中,所以我複製它並將其粘貼到我的項目xml文件夾中,當我複製條目時和值到strings.xml文件,它的工作 –

+0

對不起,我是新來的StackOverFlow,我如何接受答案?通過點擊向上箭頭?,我做到了 –

+0

對不起,我是新來的StackOverFlow,我如何接受答案?通過點擊向上箭頭?,我做到了 –