在我上一篇文章后,我使用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();
}
}
我可能有心理障碍而没有看到解决方案,但是对此问题的任何更多帮助将不胜感激。