Android中的空指针,感觉出现率,比普通的java出现的概率多得多,今天我无意中发现的NullPointerException,还是想记录下来.
我们知道, 我们的控件一般定义在layout.xml中,所以我们使用findViewById方法去寻找控件的时候,虽然不是通过 R.layout.activity,一般默认生成的代码会在Activity中的onCreate方法中:
setContentView(R.layout.activity);
不小心将该行注释了,发现Android报NullPointerException,看看R.java,正常生成,调试的时候,所有控件都是Null,奇怪了,一般的感觉都是觉得应该是通过findViewById获取的控件强制转换获得的控件类型不匹配,于是使用 findViewById(R.id.editTextId) instanceof EditText, 当然也报异常,想再调试其他值, 键盘按错,只复制到 findViewById(R.id.editTextId),发现也是null,奇怪了.
冷静看一下源码,发现setContentView(R.layout.activity);那行被注释了,想想,果真是这样.
这个问题发现太突然了,便记录下.
时间: 2024-10-17 12:41:20