我正在浏览我的应用程序的Crashlytics日志,发现某些设备上存在NullPointerException,因为getIntent()。getExtras()返回null。
此行为仅在少数设备上出现,我无法重现此错误。我知道如果Bundle为null,我可以检查活动并阻止NullPointerException,但我更感兴趣的是找出这种行为的根本原因。
编辑:
来源 -
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Cursor c = (Cursor) parent.getAdapter().getItem(position);
Intent intent = new Intent(getActivity(), SelectedTopicActivity.class);
intent.putExtra("topicId", c.getLong(c.getColumnIndex(AppContract.TopicsEntry._ID)));
startActivity(intent);
}
});
目的地 -
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_selected_topic);
Bundle bundle = getIntent().getExtras();
topicId = bundle.getLong("topicId");
...
}
如果游标为null,我会在源本身中得到错误。我不认为光标中的字段为空,否则该项目首先不会出现在列表中。