Java 当我打开一个模块时,它会崩溃

Java 当我打开一个模块时,它会崩溃,java,android-studio,cursor,Java,Android Studio,Cursor,我正在创建一个android项目,当我打开foodlist模块时,它应该显示一个带有描述的数据图像,但是它崩溃了,logcat说 原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.database.Cursor com.example.pointofsale.DatabaseHelper.getItemsdata(java.lang.String)” 在com.example.pointofsale.FoodList.onCrea

我正在创建一个android项目,当我打开foodlist模块时,它应该显示一个带有描述的数据图像,但是它崩溃了,logcat说

原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.database.Cursor com.example.pointofsale.DatabaseHelper.getItemsdata(java.lang.String)”
在com.example.pointofsale.FoodList.onCreate(FoodList.java:31)

如何解决此问题

public class FoodList extends AppCompatActivity {

    GridView gridView;
    ArrayList<Food> list;
    FoodListAdapter adapter = null;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_food_list);

        gridView = (GridView) findViewById(R.id.foodgridviewID);
        list = new ArrayList<>();
        adapter = new FoodListAdapter(this, R.layout.food_items,list);
        gridView.setAdapter(adapter);

        //get data from database

        Cursor cursor = Add_Items.databaseHelper.getItemsdata("SELECT * FROM ITEMS");
        list.clear();
        while (cursor.moveToNext())
        {
            int id  = cursor.getInt(0);
            String name = cursor.getString(1);
            String price = cursor.getString(2);
            byte[] image = cursor.getBlob(3);

            list.add(new Food(name, price, image, id));
        }

        adapter.notifyDataSetChanged();
        if (list.size() == 0)
        {
            Toast.makeText(this,"No record found", Toast.LENGTH_SHORT).show();
        }
    }
}

在代码
中添加项目。databaseHelper
null

确保已初始化
Add\u Items.databaseHelper
的实例

public Cursor getItemsdata (String sql)
{
    SQLiteDatabase db = getReadableDatabase();
    return db.rawQuery(sql, null);
}