今天寫了一個非常簡單的xml布局文件,運行,拋出異常android.view.InflateException。具體信息如下:
05-17 15:19:08.600: E/AndroidRuntime(1006): FATAL EXCEPTION: main 05-17 15:19:08.600: E/AndroidRuntime(1006): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.pinky.android.wsmarked/com.pinky.android.wsmarked.WSMarkedActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class TextEdit 05-17 15:19:08.600: E/AndroidRuntime(1006): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1654) 05-17 15:19:08.600: E/AndroidRuntime(1006): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1670) 05-17 15:19:08.600: E/AndroidRuntime(1006): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 05-17 15:19:08.600: E/AndroidRuntime(1006): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 05-17 15:19:08.600: E/AndroidRuntime(1006): at android.os.Handler.dispatchMessage(Handler.java:99) 05-17 15:19:08.600: E/AndroidRuntime(1006): at android.os.Looper.loop(Looper.java:123) 05-17 15:19:08.600: E/AndroidRuntime(1006): at android.app.ActivityThread.main(ActivityThread.java:3695) 05-17 15:19:08.600: E/AndroidRuntime(1006): at java.lang.reflect.Method.invoke(Method.java:507) 05-17 15:19:08.600: E/AndroidRuntime(1006): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842) 05-17 15:19:08.600: E/AndroidRuntime(1006): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600) 05-17 15:19:08.600: E/AndroidRuntime(1006): at dalvik.system.NativeStart.main(Native Method)
重新認真地檢查xml文件,還是沒有發現任何問題。谷歌,發現出現這種異常,基本與相應的xml的標簽和屬性的命名、定義有關。再對比以前寫的xml,終於找到了錯誤!控件EditText被我寫成了TextView~ 修改后,程序終於OK~
總結一下xml文件經常容易犯的低級錯誤:
1. 控件名稱不能寫錯(我上面就屬於這種情況)
2.名稱的大小寫要區分,如EditText與editText是完全不一樣的
3.標簽一定是成對出現的,尤其是嵌套布局
4.屬性前面一般要加android:
5.id比較特殊,應該是@+id ,其它的直接加@即可,如@string
6.drawable中引用的圖片資源不存在或名稱大小寫有誤
此外,出現這種異常還可能與自定義的View類有關,需要增加一個帶屬性的構造函數,可參照
http://blog.csdn.net/gavin812428144/article/details/6042485 。