java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常

简介: 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 int和Integer的区别
本文介绍了Java中int与Integer的区别及==与equals的比较机制。Integer是int的包装类,支持null值。使用==比较时,int直接比较数值,而Integer比较对象地址;在-128至127范围内的Integer值可缓存,超出该范围或使用new创建时则返回不同对象。equals方法则始终比较实际数值。
507 0
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
【Java基础面试五】、 int类型的数据范围是多少?
这篇文章回答了Java中`int`类型数据的范围是-2^31到2^31-1,并提供了其他基本数据类型的内存占用和数值范围信息。
【Java基础面试五】、 int类型的数据范围是多少?
|
存储 算法 Java
Java零基础-charAt(int index)详解
【10月更文挑战第20天】Java零基础教学篇,手把手实践教学!
645 4
|
存储 算法 Java
Java零基础-charAt(int index)详解
【10月更文挑战第16天】Java零基础教学篇,手把手实践教学!
526 1
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
807 3
|
关系型数据库 MySQL Java
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
flywa报错java.sql.SQLSyntaxErrorException: Unknown database ‘flyway‘
354 1
|
Java Android开发 C++
🚀Android NDK开发实战!Java与C++混合编程,打造极致性能体验!📊
在Android应用开发中,追求卓越性能是不变的主题。本文介绍如何利用Android NDK(Native Development Kit)结合Java与C++进行混合编程,提升应用性能。从环境搭建到JNI接口设计,再到实战示例,全面展示NDK的优势与应用技巧,助你打造高性能应用。通过具体案例,如计算斐波那契数列,详细讲解Java与C++的协作流程,帮助开发者掌握NDK开发精髓,实现高效计算与硬件交互。
874 1
|
Java 调度 Android开发
Android经典实战之Kotlin的delay函数和Java中的Thread.sleep有什么不同?
本文介绍了 Kotlin 中的 `delay` 函数与 Java 中 `Thread.sleep` 方法的区别。两者均可暂停代码执行,但 `delay` 适用于协程,非阻塞且高效;`Thread.sleep` 则阻塞当前线程。理解这些差异有助于提高程序效率与可读性。
624 1
|
Android开发
Cannot create android app from an archive...containing both DEX and Java-bytecode content
Cannot create android app from an archive...containing both DEX and Java-bytecode content
428 2

热门文章

最新文章