Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
访问SQLite DB时出现Android NullPointerException_Android_Sqlite - Fatal编程技术网

访问SQLite DB时出现Android NullPointerException

访问SQLite DB时出现Android NullPointerException,android,sqlite,Android,Sqlite,我需要帮助,伙计们!我有一个错误,我已经工作了几个小时,无法解决 我有一个ListView和customadapter,ListView由本地sqlite数据库中的对象填充。我在listview的每一行上都有一个按钮,用来从数据库中删除相应的对象。但是,当点击按钮时,我会像这样查询数据库 public Game getGame(gameid){ Long gameif = Long.parseLong(gameid); Game g = db.getGa

我需要帮助,伙计们!我有一个错误,我已经工作了几个小时,无法解决

我有一个ListView和customadapter,ListView由本地sqlite数据库中的对象填充。我在listview的每一行上都有一个按钮,用来从数据库中删除相应的对象。但是,当点击按钮时,我会像这样查询数据库

public Game getGame(gameid){    
    Long gameif = Long.parseLong(gameid);

            Game g = db.getGame(gameif);

    return g;   
}
line Game g=db.getGame()就是给我NPE的那个。传入的gameid不为null,对数据库的引用
db=newdatabasehandler(此)不是空的(我不认为)

以下是DatabaseHandler中的代码:

Game getGame(Long id) {
    SQLiteDatabase db = this.getReadableDatabase();

    Game game= null;
    System.out.println(String.valueOf(id));
    Cursor cursor = db.query(TABLE_GAMES, new String[] { KEY_ID,
            KEY_PLAYERNAME, KEY_PLAYERNUMBER, KEY_LASTTURN, KEY_NEXTTURN }, KEY_ID + "= ?",
            new String[] { String.valueOf(id) }, null, null, null, null);

    if (cursor != null){
        cursor.moveToFirst();

    game = new Game(Long.parseLong(cursor.getString(0)), cursor.getString(1), 
            Integer.parseInt(cursor.getString(2)),
            cursor.getString(3), Integer.parseInt(cursor.getString(4)));
    }


    return game;
}
提前谢谢

编辑-这是日志

09-29 11:06:52.843: E/AndroidRuntime(16969): FATAL EXCEPTION: main
09-29 11:06:52.843: E/AndroidRuntime(16969): java.lang.NullPointerException
09-29 11:06:52.843: E/AndroidRuntime(16969):    at com.domsoft.ff.MainActivity.getGame(MainActivity.java:115)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at com.domsoft.ff.MainActivity.talkToAsync(MainActivity.java:71)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at com.domsoft.ff.GameCustomAdapter$1.onClick(GameCustomAdapter.java:72)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at android.view.View.performClick(View.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at android.view.View$PerformClick.run(View.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at android.os.Handler.handleCallback(Handler.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at android.os.Handler.dispatchMessage(Handler.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at android.os.Looper.loop(Looper.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at android.app.ActivityThread.main(ActivityThread.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at java.lang.reflect.Method.invokeNative(Native Method)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at java.lang.reflect.Method.invoke(Method.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java)
09-29 11:06:52.843: E/AndroidRuntime(16969):    at dalvik.system.NativeStart.main(Native Method)

单击my
customadapter
中处理的按钮,然后启动主活动中的
talktoasync()
,然后运行一个异步任务,将一些数据发送到服务器,然后根据服务器的响应代码,删除本地数据库中的记录
getGame()
在asynctask的
onPostExecute()
中被触发。

当您访问Data acces对象时,首先需要具有和该对象的实例

->db=新的DatabaseHandler(此)

在您需要打开需要访问的数据库之后

db.open()

在处理程序中设置此代码段:

private MySQLiteHelper dbHelper; 

   public void open() throws SQLException {

    db = dbHelper.getWritableDatabase();

    }
如果不打开数据库,Android将抛出NullPointerException。打开数据库时出现问题,这会抛出exeption

有关详细信息,请参见本教程:

调试并检查您的光标是否为空,您将执行不等于空的检查,但在下一行中使用光标。请发布日志,这将帮助我们帮助您。请查看编辑!也谢谢你的帮助,我现在就开始尝试这个帖子中提到的所有技巧。