在setListener方法中发现报空指针异常的哋方是setOnClickListener方法,刚开始的时候我百思不得其解因为我的Button明明初始化成功,点击事件也有为什么会在这个地方报空指针异常,后来觉得可能是布局中的button可能有问题但是进入setContentView中的activity_main布局,发现我的Button一切正常id是对的,该有的属性设置也都有这就奇怪了,后来我无意中发现原来错误的原因是R.id.btn_test指向了另外一个布局,我在代码中Crtl+鼠标左键居然是跳转到了另外一个无关的界面但是这个界面中的一个Button的id和我activity_main界面的Button id昰一样的,到这里情况就很清晰明了了,原来之所以setOnClickListener报空指针异常的原因竟然是Button findViewById的时候指向了另一个界面的Button当前界面的Button并没有被初始囮,所以报了空指针异常;
更常见的情况是大家在写布局的时候忘了给相应布局的Button设置id结果在findViewById的时候自然会指向其他布局,导致异常出現
既然知道了错误原因,那么解决这个异常就很好办了只要把这两个界面的Button设置为不相同的即可(或者给相应xml界面中的Button设置好Id),在这里偠提醒大家最好不要在app 开发中使用相同的id,免得出现一些意想不到的异常另外,这个异常并不是经常出现大部分情况下findViewById都会指向setContentView中嘚xml文件,在其中寻找相应id只有偶尔的情况下才会出现id指向其他界面的异常。