2012-08-07 116 views
3

我已經看了一堆其他人的問題和解釋,並沒有什麼是爲我工作。我的程序的第一個活動是ListActivity,它在擴展xml文件時遇到了麻煩。 LogCat輸出爲:膨脹類錯誤android.widget.listview

08-01 08:36:17.800: E/AndroidRuntime(1935): FATAL EXCEPTION: main 
08-01 08:36:17.800: E/AndroidRuntime(1935): java.lang.RuntimeException: Unable to start activity ComponentInfo{jamie.basketball.gui/jamie.basketball.gui.TeamDisplayActivity}: android.view.InflateException: Binary XML file line #15: Error inflating class android.widget.ListView 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.os.Looper.loop(Looper.java:123) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at java.lang.reflect.Method.invoke(Method.java:507) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at dalvik.system.NativeStart.main(Native Method) 
08-01 08:36:17.800: E/AndroidRuntime(1935): Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class android.widget.ListView 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.view.LayoutInflater.createView(LayoutInflater.java:518) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.Activity.setContentView(Activity.java:1657) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at jamie.basketball.gui.TeamDisplayActivity.onCreate(TeamDisplayActivity.java:137) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  ... 11 more 
08-01 08:36:17.800: E/AndroidRuntime(1935): Caused by: java.lang.reflect.InvocationTargetException 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at java.lang.reflect.Constructor.constructNative(Native Method) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at java.lang.reflect.Constructor.newInstance(Constructor.java:415) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.view.LayoutInflater.createView(LayoutInflater.java:505) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  ... 22 more 
08-01 08:36:17.800: E/AndroidRuntime(1935): Caused by: java.lang.NullPointerException 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at  android.content.res.AssetManager.getResourceTextArray(AssetManager.java:214) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.content.res.Resources.getTextArray(Resources.java:361) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.content.res.TypedArray.getTextArray(TypedArray.java:628) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.widget.ListView.<init>(ListView.java:168) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  at android.widget.ListView.<init>(ListView.java:159) 
08-01 08:36:17.800: E/AndroidRuntime(1935):  ... 25 more 

我不完全確定發生了什麼。我檢查了Android Manifest,第15行是<application,這看起來不像是一個問題。我的XML文件的第15行只是<ListView。我發佈了整個XML文件,以防其中還有其他內容似乎是問題所在。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <TextView 
      android:id="@+id/num_of_teams" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:layout_centerHorizontal="true" 
      android:text="@string/debug" 
      android:textAppearance="?android:attr/textAppearanceLarge" /> 

     <ListView 
      android:id="@+id/@android:id/list" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/num_of_teams" 
      android:layout_marginTop="5dp" 
      android:entries="@layout/team_list_entry" > 

     </ListView> 

     <Button 
      android:id="@+id/delete_team" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/@android:id/list" 
      android:layout_marginLeft="20dp" 
      android:layout_marginTop="30dp" 
      android:text="@string/delete_team" /> 

     <Button 
      android:id="@+id/add_team" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="false" 
      android:layout_alignParentTop="false" 
      android:layout_below="@+id/@android:id/list" 
      android:layout_marginLeft="50dp" 
      android:layout_marginTop="30dp" 
      android:layout_toRightOf="@id/delete_team" 
      android:text="@string/add_team" /> 

    </RelativeLayout> 

而且,備案,是指線路TeamDisplayActivity 137堆棧跟蹤只是setContentView(R.layout.team_list_display)。任何幫助都會很棒,我真的不知道出了什麼問題。在此先感謝

+0

發佈您的代碼。你的'PhoneLayoutInflater'類。 – 0gravity 2012-08-07 00:59:01

+0

這不是我的課程,它是Android庫的一部分... – 2012-08-07 01:04:24

+0

在logcat上點擊一行:一個包含你的包名,看看你需要的線。 – 2012-08-07 01:05:39

回答

3

這行看起來不正確:

android:entries="@layout/team_list_entry" 

通常我認爲它被指定爲像

android:entries="@array/servers" etc. 

並嘗試指定編號爲:

android:id="@+id/list" 
+0

通常我不希望看到team_entry_list在這個地方定義。 – 2012-08-07 01:10:44

+0

糟糕,沒有看到您的編輯。謝謝 – 2012-08-07 01:16:04

1

您使用@+id/@android:id/list

我想那一定是@+id/android:list@+id/list

你可以在這裏看到:https://stackoverflow.com/a/4355644/617801

+0

給出了相同的確切崩潰。我直接從SDK網站獲得'@ + id/@ android:id/list':http://developer.android.com/reference/android/app/ListActivity.html _你自己的視圖必須包含一個ListView對象ID爲「@android:id/list」_ – 2012-08-07 01:09:47

+0

這意味着你必須使用:android:id =「@ android:id/list」for your listView – 2012-08-07 01:21:13

+0

你是對的,但這不是問題,也沒有似乎會造成問題 – 2012-08-07 01:24:55

0

機器人:ID = 「@ + ID/@機器人:ID /列表」 改變到這個機器人:ID =」 @ + ID /列表1" 。你的二元膨脹異常的問題將得到解決。並且永遠不要試圖在ListView中使用android:id =「@ + id/list」。通過使用One more選項,您可以創建ListView,即android:id =「@ id/android:list」。

0

我有一個類似的問題,也許這有助於別人。

我意外地在ListView中設置了android:onClick="onClickExamplesMethod"。刪除後它再次工作。

相關問題