Android:getApplicationContext() 报错 -- 空指针
16lz
2021-01-23
今天写代码时遇到一个bug,logcat显示存在空指针,报错信息如下:
错误方式以及出错原因:
java.lang.RuntimeException: Unable to start activity ComponentInfo 以及 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘android.content.Context.**.getApplicationContext()’ on a null object reference
今天花了一天的时间将这一部分代码进行重写以后,发现问题其实不在logcat报错的位置,而是出在了Intent 的activity跳转上,由于intent携带了两个String类型的数据,我最开始的代码如下:
Intent intent = new Intent(DrugBoxActivity.this, SetAlarmActivity.class);intent.putExtra("drug_boxNum", strDrugBoxNum);intent.putExtra("drug_genericName", strDrugName[position]);intent.putExtra("drug_dosage", strDrugDosage[position]);getApplicationContext().startActivity(intent);
问题就出在了这里的 getApplicationContext() 上,由于没有系统的学习和了解,所以对这里不太懂,但是对于功能实现的话,getApplicationContext() 是不允许的,点击相应的控件后,会闪退当前的activity,再次点击相应的activity会退出APP,此时才会产生logcat错误。
去掉getApplicationContext(),更换下面的写法后,就可以正常跳转activity了,也可以传递数据。
startActivity(new Intent(DrugBoxActivity.this, SetAlarmActivity.class) .putExtra("drug_boxNum", strDrugBoxNum) .putExtra("drug_genericName", strDrugName[position]) .putExtra("drug_dosage", strDrugDosage[position]) );
更多相关文章
- android代码编写布局和控件
- [CSDN]Android系统进程Zygote启动过程的源代码分析
- Android有用代码片段(二)
- Android 代码当中动态改变某个控件的位置
- android 获取本机号码及应加的权限 代码
- android 官方文档中的一些错误收集
- 编译Android出现/usr/bin/ld: cannot find -lncurses错误