我是一名初级Android开发人员,每天都会遇到很多错误及其解决方案.我注意到我很多次java.lang.NullPointerException: Attempt to invoke virtual method 'xxx' on a null object reference
.Upto NullPointerException
,听起来很熟悉,某些东西的价值为null,但问题从下一个短语开始.[请关注代码问题]
在我看来,我发现这个非常不清楚,因为Android工作室不像Eclipse只能说出Attempt to invoke virtual method 'xxx' on a null object reference
任何问题,我很难知道我在哪里缺少点.无论是游标,数据库,arraylist还是你能想到的任何对象,像疯狂机器人这样的Android工作室总会给出这个错误.
任何人都可以解释一下这究竟是什么意思,在一般情况下我的方法应该是什么?我得到这个错误?
这是我在我的应用程序中遇到的一种奇怪的行为,它让我发疯.
这个功能很好
ArrayList<HashMap<String, String>> getAllRows() {
Cursor c = db.query(TABLE_NAME, ALL_KEYS, null, null, null, null, null); // THIS LINE IS MY POINT
//
...
//
c.close();
return profilesArray;
}
Run Code Online (Sandbox Code Playgroud)
但另一个功能给我错误
java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String)' on a null object reference …
我有300首mp3歌曲的列表视图,假设歌曲52正在播放.所以我想下次当用户打开歌曲列表时,他前面的列表行必须从第52行开始(上下都是行).我试过用
public View getViewByPosition(int pos, ListView listView) {
final int firstListItemPosition = listView.getFirstVisiblePosition();
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;
if (pos < firstListItemPosition || pos > lastListItemPosition ) {
return listView.getAdapter().getView(pos, null, listView);
} else {
final int childIndex = pos - firstListItemPosition;
return listView.getChildAt(childIndex);
}
}
Run Code Online (Sandbox Code Playgroud)
并且
adapter.getItem(52);
Run Code Online (Sandbox Code Playgroud)
但两者都是毫无意义的方法,并没有带我去第52行.(这些方法是我使用的,但可能不是解决方案)而且我没有得到谷歌搜索的解决方案.如果你们能解决这个问题,请告诉我!
非常感谢你的聆听!