开发者社区> 问答> 正文

创建SQLiteDatabase对象时报错,空指针异常

我创建了一个SQLite,以及操作数据库的类,代码如下
(这是数据库类)

 public class account extends SQLiteOpenHelper {
 private static final int VERSION = 1;// 定义数据库版本号
 private static final String DBNAME = "account.db";// 定义数据库名
 public account(Context context){// 定义构造函数
    super(context, DBNAME, null, VERSION);// 重写基类的构造函数
}

@Override
public void onCreate(SQLiteDatabase db){// 创建数据库
    db.execSQL("create table tb_pname(id INTEGER PRIMARY KEY AUTOINCREMENT,packageName varchar(20))");// 创建表,表的一列为packageName,一列为主键id,id的值可递增
    //db.execSQL("create table tb_pwd (password varchar(20))");//创建密码表
}


(这是数据库操作类)
 public class PwdDAO {
 private static PwdDAO pwdDAO=null;
 Context context;
 private account helper=new account(context);// 创建DBOpenHelper对象
 private static final String USER_TABLE="tb_pname";
 public static PwdDAO getInstance(){
 if(pwdDAO==null){
          pwdDAO=new PwdDAO();
      }

      return pwdDAO;
}
public account getHelper(){

     return helper;

}

但当执行语句 SQLiteDatabase db = PwdDAO.getInstance().getHelper().getWritableDatabase(); 程序报错被强退,logcat中的错误如下
screenshot

展开
收起
爵霸 2016-06-20 09:14:39 3263 0
1 条回答
写回答
取消 提交回答
  • 检查操作数据库的相关源代码,确认在退出前关闭了游标及数据库对象。
    那还抛出未关闭的错误是怎么回事呢?继续检查发现,抛出此错误之前,在操作数据库过程中还抛出了另外的一个错误。
    原来在抛出第一个错误以后,关闭操作未执行,导致再次操作数据库时抛出“应用程序没有关闭游标或数据库对象”的错误。

    2019-07-17 19:43:38
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载