Android studio Java类构造sqlite数据库对象上的空对象引用

Android studio Java类构造sqlite数据库对象上的空对象引用,java,class,nullpointerexception,android-sqlite,Java,Class,Nullpointerexception,Android Sqlite,我认为这是一个简单的问题,但我是一个在Java中构造类的新手。我在安卓工作室工作,我的课程已经包含在下面的代码中。 类中的函数只是尝试对sqlite数据库进行查询,但我得到以下错误 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.query(java.lan

我认为这是一个简单的问题,但我是一个在Java中构造类的新手。我在安卓工作室工作,我的课程已经包含在下面的代码中。 类中的函数只是尝试对sqlite数据库进行查询,但我得到以下错误

     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.Cursor android.database.sqlite.SQLiteDatabase.query(java.lang.String, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, java.lang.String, java.lang.String)' on a null object reference
我想这是因为没有正确声明sqLiteDatabase对象。有人能帮助解释如何以及在何处纠正此问题吗

package com.example.zzzzz;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class clsSqliteHandler {

    //SQLiteDatabase sqLiteDatabase;
    SQLiteDatabase sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase("wildlife_db", MODE_PRIVATE,null);


    public clsSqliteHandler() {

    }


    public Cursor getCursor(String strTable, String strColsToReturn, String strSelectionWhere, String strSelectionArgs){

        String strTableName = strTable;
        String[] strColumnsToReturn = { strColsToReturn };
        String strSelectWhere = strSelectionWhere ;
        String[] strSelectArgs = { strSelectionArgs };
        Cursor csrResult = sqLiteDatabase.query(strTableName, strColumnsToReturn, strSelectWhere, strSelectArgs, null, null, null);

        return csrResult;

    }

}
下面是我如何从活动中调用类方法

        Cursor myCursor = mySqliteHandler.getCursor("fact_sightings", "animal_common_name", "province_name", "Western Cape");

从不将SQLiteDatabase对象分配给变量。因此,变量引用null,因此在调用getCursor方法时会引发错误。您需要创建这样一个对象并将其分配给您的变量。非常感谢您的回复,我已经编辑了这篇文章,其中包括了如何调用类函数。您能否详细说明您的评论,并提出一些可行的代码?再次感谢您在哪里初始化clsSqliteHandler类中的sqLiteDatabase变量?您的代码只显示该变量的声明,在Java中,如果您没有为其分配对象,该声明默认为null。所以它应该是这样的:SQLiteDatabase mydatabase=openOrCreateDatabase(“您的数据库名”,MODE_PRIVATE,null);您好,谢谢您,我确实尝试过,但在MODE_PRIVATE参数中出现了一个错误,表示“无法解析符号”。我用新的sqlite声明/初始化编辑了原始代码,现在得到了MODE_PRIVATE错误。我认为这与上下文有关?您是否能够就此错误提供建议?