相信你在开发android程序的时候一定遇到过这个错误提示吧。
对于像我这样的初学者,我相信这个错误一点让你头大。打断点调试,很容易会把错误源定位到setContentView(R.layout.main);这句代码上面。这时会很自然的想到是这个activity对应的布局文件main.xml写的不合适。但是布局文件一点错误提示都没有,让人很是郁闷,尤其是对我们初学者来说,布局文件中的书写规则还不是完全了解。
今天我在布局文件中放置了一个progressbar,运行的时候总是出现这个错误,经过茫茫网海的搜索总算是找到一种合理的调试方法:
这样当你调试或者直接运行也可以,这时就会在logcat窗口中看到打印出来的异常信息,比如我这里看到:
- try
- {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- } catch (Exception e)
- {
- // TODO Auto-generated catch block
- Log.e("ERROR", "ERROR IN CODE: " + e.toString());
- e.printStackTrace();
- }
02-27 10:38:24.051: ERROR/ERROR(2099): ERROR IN CODE: java.lang.RuntimeException: Binary XML file line #13: You must supply a layout_height attribute.
这时我才明白原来在布局文件的第十三行少写了一个lay_height属性。
补充完整,调试成功。
同时我也明白了,原来所有的控件都必须指定它的高宽属性。