2010-07-30 16 views
0

我正在使用Eclipse並創建了HelloWorld,它使用模擬器工作正常。 然後,我嘗試創建ToDoList應用程序,您可以在該應用程序中輸入文本並單擊提交,然後按照我擁有的書上的示例獲取導致我的應用程序強制關閉的錯誤。android-使用自定義佈局拋出InflateException導致應用程序強制關閉

我的目錄結構:(請忽略其他文件夾)

ProjectToDoList 
    | 
    |-----src 
    |  |----com.test.dotolist 
    |       |------ToDoList.java 
    |       |------ToDoListItemView.java 
    ------res 
      | 
      |----layout 
       |-------main.xml 
       |-------todolist_item.xml 

我跟蹤在那裏發生的事情:

如果我只使用默認佈局ToDoList.java,如:

final ArrayList<String> todoItems = new ArrayList<String>(); 
final ArrayAdapter<String> aa; 
aa = new ArrayAdapter<String>(this, 
      android.R.layout.simple_expandable_list_item_1, todoItems); 

該應用程序工作正常。我可以輸入文字並點擊一個按鈕以顯示文字。

但我想用我的自定義佈局:

ToDoList.java,

 final ArrayList<String> todoItems = new ArrayList<String>(); 
     int resID = R.layout.todolist_item; 

     //create array adopter to bind the array to the listview 
     final ArrayAdapter<String> aa; 
     aa = new ArrayAdapter<String>(this, resID, todoItems); 

     //bind the array adapter to the listview 
     myListView.setAdapter(aa); 

正如你可以看到,當我嘗試渣油傳遞給ArrayAdapter,它編譯和我的應用程序顯示出來在模擬器上。但是當我點擊提交按鈕時,它強制關閉。

todoList_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<com.test.todolist.ToDoListItemView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dp" 
    android:scrollbars="vertical" 
    android:textColor="@color/notepad_text" 
    android:fadingEdge="vertical"  
/> 

的logcat的輸出:(我無法弄清楚什麼是錯的)

W/KeyCharacterMap( 279): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
D/AndroidRuntime( 279): Shutting down VM 
W/dalvikvm( 279): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
E/AndroidRuntime( 279): FATAL EXCEPTION: main 
E/AndroidRuntime( 279): android.view.InflateException: Binary XML file line #2: Error inflating class com.test.todolist.ToDoListItemView 
E/AndroidRuntime( 279): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 
E/AndroidRuntime( 279): at android.view.LayoutInflater.inflate(LayoutInflater.java:385) 
E/AndroidRuntime( 279): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
E/AndroidRuntime( 279): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:332) 
E/AndroidRuntime( 279): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 
E/AndroidRuntime( 279): at android.widget.AbsListView.obtainView(AbsListView.java:1315) 
E/AndroidRuntime( 279): at android.widget.ListView.measureHeightOfChildren(ListView.java:1198) 
E/AndroidRuntime( 279): at android.widget.ListView.onMeasure(ListView.java:1109) 
E/AndroidRuntime( 279): at android.view.View.measure(View.java:8171) 
E/AndroidRuntime( 279): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
E/AndroidRuntime( 279): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012) 
E/AndroidRuntime( 279): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381) 
E/AndroidRuntime( 279): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304) 
E/AndroidRuntime( 279): at android.view.View.measure(View.java:8171) 
E/AndroidRuntime( 279): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
E/AndroidRuntime( 279): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
E/AndroidRuntime( 279): at android.view.View.measure(View.java:8171) 
E/AndroidRuntime( 279): at android.widget.LinearLayout.measureVertical(LinearLayout.java:526) 
E/AndroidRuntime( 279): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304) 
E/AndroidRuntime( 279): at android.view.View.measure(View.java:8171) 
E/AndroidRuntime( 279): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
E/AndroidRuntime( 279): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
E/AndroidRuntime( 279): at android.view.View.measure(View.java:8171) 
E/AndroidRuntime( 279): at android.view.ViewRoot.performTraversals(ViewRoot.java:801) 
E/AndroidRuntime( 279): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
E/AndroidRuntime( 279): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime( 279): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime( 279): at android.app.ActivityThread.main(ActivityThread.java:4627) 
E/AndroidRuntime( 279): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime( 279): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime( 279): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
E/AndroidRuntime( 279): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
E/AndroidRuntime( 279): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime( 279): Caused by: java.lang.ClassNotFoundException: com.test.todolist.ToDoListItemView in loader dalvik.system.PathClassLoader[/data/app/com.test.dotolist-1.apk] 
E/AndroidRuntime( 279): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
E/AndroidRuntime( 279): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
E/AndroidRuntime( 279): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
E/AndroidRuntime( 279): at android.view.LayoutInflater.createView(LayoutInflater.java:466) 
E/AndroidRuntime( 279): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 
E/AndroidRuntime( 279): ... 32 more 
W/ActivityManager( 66): Force finishing activity com.test.dotolist/.ToDoList 

請讓我知道你是否需要澄清。

+0

class ToDoListItemView擴展爲??? – Jorgesys 2010-07-30 23:22:52

+0

它擴展了TextView。 – 2010-07-30 23:25:05

回答

3

這是你的異常:

Caused by: java.lang.ClassNotFoundException: com.test.todolist.ToDoListItemView in loader dalvik.system.PathClassLoader[/data/app/com.test.dotolist-1.apk] 

,看看你的包::

ProjectToDoList 
    | 
    |-----src 
    |  |----com.test.dotolist 
    |       |------ToDoListItemView.java 

todolist的!= dotolist

你有你的todoList_item.xml

<com.test.todolist.ToDoListItemView 

更改爲::

<com.test.dotolist.ToDoListItemView 

這必須努力! =)

+0

嗯......你能解釋一下嗎?看起來像ToDoListItemView類沒有找到? – 2010-07-30 23:27:53

+0

謝謝你的細節,讓我試試.. – 2010-07-30 23:29:59

+0

不客氣=) – Jorgesys 2010-07-30 23:33:13

相關問題