在android studio中访问SQl​​ite数据库时出错

时间:2017-01-06 20:03:25

标签: java mysql database sqlite android-studio

在我上一篇文章后,我使用SQLiteOpenHelper访问预先填充的sqlite数据库,有人建议我使用SQLAssetHelper,所以我找到了一个指南,然后尝试实现它,但我仍然遇到错误。

like:引起:java.lang.NullPointerException:尝试调用虚方法' java.io.File android.content.Context.getDatabasePath(java.lang.String)'在空对象引用上

我知道在大多数情况下什么是空指针异常,但在这种情况下不理解它,因为我是android开发的新手。下面我的DBHleper类的第26行的错误。 - String dbPath = myContext.getDatabasePath(DATABASE_NAME).getPath();

public class DBHelper extends SQLiteAssetHelper {

private static  final String DATABASE_NAME = "Database.db";
private static  final int DATABASE_VERSION = 1;
private Context myContext;
private SQLiteDatabase mDatabase;

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

}

public void openDatabase(){
    String dbPath = myContext.getDatabasePath(DATABASE_NAME).getPath();
    if(mDatabase!= null && mDatabase.isOpen()){
        return;
    }
    mDatabase = SQLiteDatabase.openDatabase(dbPath,null,SQLiteDatabase.OPEN_READWRITE);

}

public Cursor getItems(){
    SQLiteDatabase db = getReadableDatabase();
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

    qb.setTables("Attraction");

    Cursor c = qb.query(db,null,null,null,null,null,null);
    c.moveToFirst();

    return c;
}

}

我的主要

public class MainActivity extends AppCompatActivity {

DBHelper newDB;
private Cursor attraction;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    newDB = new DBHelper(this);
    newDB.openDatabase();
    attraction = newDB.getItems();

}

}

我可能有心理障碍而没有看到解决方案,但是对此问题的任何更多帮助将不胜感激。

0 个答案:

没有答案