安卓小程序的一次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);


原文地址:https://www.cnblogs.com/gobyte/p/10714471.html