简体   繁体   English

NullPointerException与Android SQLiteAssetHelper

[英]NullPointerException with Android SQLiteAssetHelper

In the development of Android applications I use Android SQLiteAssetHelper . 在Android应用程序的开发中,我使用Android SQLiteAssetHelper The problem is that occasionally when accessing the database I get an error to the object NullPointerException in object DBQuery 问题是,有时在访问数据库时,对象DBQuery的对象NullPointerException出现错误

public class DBQuery extends MyDatabase {
  private static MyDatabase dataBaseHelper;

  public DBQuery(Context context) {
        super(context);
        dataBaseHelper = new MyDatabase(context);
  }

  public static void closed() {
        dataBaseHelper.close();
  }

  public static int getFDay(int year) {
    Cursor cursor = database.rawQuery("SELECT offset FROM china_years WHERE year = ?",
        new String[] { Integer.toString(year) });

    cursor.moveToFirst();
    String yearS;
    try {
      yearS = cursor.getString(0);
    } catch (Exception e) {
      yearS = "0";
      e.printStackTrace();
    }
    cursor.close();

    return Integer.parseInt(yearS);
  }

  /* other queries... */    
}

MyDatabase class: MyDatabase类:

public class MyDatabase extends SQLiteAssetHelper {

   private static final String DATABASE_NAME = "db.sqlite";
   private static final int DATABASE_VERSION = 2;      
   public static SQLiteDatabase database;

   public MyDatabase(Context context) {
     super(context, DATABASE_NAME, null, DATABASE_VERSION);

     database = getReadableDatabase();
   }
}

UDP: Sorry, null object is 'database' in DBQuery class. UDP:对不起,空对象是DBQuery类中的“数据库”。

Add Database name Like this & check that database is create or not 像这样添加数据库名称并检查是否已创建数据库

 private static final String DATABASE_NAME = "Test";

data/data/YOUR_APP_PACKAGE_NAME Location data/data/YOUR_APP_PACKAGE_NAME位置

You have to open your data base first. 您必须先打开数据库。 Than only you can perform operation on that. 比只有您可以对此进行操作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM