Android studio Java конструкция класса ссылка на пустой объект на объекте базы данных sqlite - PullRequest
0 голосов
/ 26 января 2020

Я думаю, что это легко, но я новичок в создании классов в Java. Я работаю в студии Android и у меня есть класс, который я включил в код ниже. Функция в классе просто пытается выполнить запрос к базе данных 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");
...