java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

Posted 路 宇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段相关的知识,希望对你有一定的参考价值。

具体报的错误:

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.database.sqlite.SQLiteDatabase.delete(java.lang.String, java.lang.String, java.lang.String[])' on a null object reference

通过调用数据库中的删除方法,删除下载管理中的声音文件。
但是调试的时候发现BUG,点击声音文件,进到下一个页面之后,再返回本页面,删除该声音文件时就报错误。
之后查找资料才知道,Android sqlite数据库不支持同时读写,如果需要多个一起同时进行读写数据库的话,就需要用多个实例化的mHelper

@Override
    public boolean OnMItemLongClick(AdapterView<?> parent, View view, final int position, long id) {
        try {
        	//重写实例化数据库,获得数据库帮助器的实例
            mHelper = UserDownDBHelper.getInstance(this, 1);
            mHelper.openReadLink();
            final UserDown info = userDowns.get(position);
            DialogD dialog = new DialogD(AppsettingDownloadActivity.this);
            dialog.setTitle("删除");
            dialog.setMessage("是否删除" + userDowns.get(position).FileName + "?");
            dialog.setCancel("取消", new DialogD.OnCancelListener() {
                @Override
                public void onCancel(DialogD dialog) {

                }
            });
            dialog.setConfirm("确认", new DialogD.OnConfirmListener() {
                @Override
                public void onConfirm(DialogD dialog) {
                    userDowns.remove(position);
                    mHelper.delete("FileName='" + info.FileName + "'");
                    mAdapter.notifyDataSetChanged();
                }
            });
            dialog.show();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return true;
    }

这样问题解决了,希望能帮助到遇到此问题的网友~

以上是关于java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段的主要内容,如果未能解决你的问题,请参考以下文章

亲測,Eclipse报&quot;An error has occurred,See error log for more details. java.lang.NullPointerExce

来自 LayerDrawable 的异常

Microsoft Access 和 Java JDBC-ODBC 错误

如何使用其id获取单个SQLite行数据?