安卓小程序的一次bug调试,报错:java.lang.NullPointerException,logcat学习
做实验的时候,调试了很久后模拟器执行后,app还是会崩溃并停止运行,错误如下。
因为初学,所以也不知道怎么使用调试工具,也不懂看日志,经过学习后尝试这查看了LogCat日志上面有这样的提示:
其中引起我注意的是第五行,报错:java.lang.NullPointerException,这个NullPointerExceptionzai在学Java的时候经常遇到,也算数熟客了,是“空指针异常”,一般由没有赋值或者初始化变量导致的。
接着向下看第五行,at com.example.demo1.MainActivity$1.onClick(MainActivity.java:46),其中MainActivity.java:46的46,应该是代表我这个MainActivity类里面的46行。
打开我们的MainActivity类,找到46行:
此时我看到了ck1这个变量,按下快捷键:Ctrl+鼠标左键,跟踪到这个变量的创建的地方,然后发现CK1的变量仅仅只是创建了,但是没有和控件进行关联起来,所以当程序要调用的时候,是找不到这个控件的,从而导致了报错。
解决方便很简单,模仿第32、33行的写法,把ck1和控件进行关联,也就是这样:
ck1 = (CheckBox) findViewById(R.id.checkBox1);