1

在开发 Android 应用程序时,我使用Android SQLiteAssetHelper。问题是,有时在访问数据库时,我会收到对象 NullPointerException中的对象错误DBQuery

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 类:

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:对不起,空对象是 DBQuery 类中的“数据库”。

4

2 回答 2

0

像这样添加数据库名称并检查数据库是否已创建

 private static final String DATABASE_NAME = "Test";

data/data/YOUR_APP_PACKAGE_NAME地点

于 2013-01-04T09:10:37.307 回答
-1

你必须先打开你的数据库。只有您可以对其执行操作。

于 2013-01-04T12:32:44.970 回答