安卓调试过程中一个有意思的调试报错——Log.d

近期在调试学校APP手机端软件时需要使用intent.getStringExtra来获取一个传递过来的参数,将次代码插入到Log.d中的value中时,将程序运行在安卓手机上即崩溃,查看报错信息为:

java.lang.RuntimeException:Unableto start activity ComponentInfo{com.example.master.temp_squeez/com.example.master.temp_squeez.MainActivity}: java.lang.NullPointerException: println needs a message

百思不得其解,因此这个Log.d是写在onCreate方法中的,此应用是通过另外一个应用使用包名调用启动,并且在启动的intent里已经putExtra携带信息过来了。在之后的调试中一次偶然,在value原本的值后面加了一个空字符“”,程序竟然能运行了,后来我猜测,有一种可能就是我单独启动这个应用,这个时候是不携带任何参数值的,因此,intent.getStringExtra的值只能为空,而Log.d的value值又不允许为空,所以就会出现此类错误。

经验:在以后使用Log.d后面的value值时,尤其是字符串类型,添加一个空字符""更可靠,不影响程序原本的运行与参数。

欢迎参与下方讨论

猜你喜欢

转载自blog.csdn.net/huma8848888/article/details/79897703