今天写了一个非常简单的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 。