Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在运行时从sqlite读取数据_Android_Sqlite_Nullpointerexception_Android Sqlite - Fatal编程技术网

Android在运行时从sqlite读取数据

Android在运行时从sqlite读取数据,android,sqlite,nullpointerexception,android-sqlite,Android,Sqlite,Nullpointerexception,Android Sqlite,我在联机时将所有数据存储在sqlite数据库中,然后在脱机时每次都尝试读取存储的数据库 if(isOnline(getActivity())) { db = new DataBaseHandler(getActivity()); getDataInAsyncTask(); storeData(db); //db.close(); } else

我在联机时将所有数据存储在sqlite数据库中,然后在脱机时每次都尝试读取存储的数据库

 if(isOnline(getActivity()))

        {
            db = new DataBaseHandler(getActivity());
            getDataInAsyncTask();
            storeData(db);
            //db.close();
        }
        else
                    {

        Toast.makeText(getActivity(), "No internet",
                    Toast.LENGTH_LONG).show();

            try {
                db.openDataBase();
            } catch (SQLException sqle) {
                throw sqle;
            }
            getDataInDataBase(db);
            flag=0;
        }
在else条件下,即脱机模式下,我使用db.openDataBase()在联机模式下打开/加载先前实现的数据库db

   public void openDataBase() throws SQLException{

        //Open the database
     String myPath = DB_PATH + DB_NAME;
        myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);}
db.openDataBase提供nullpointerException


我哪里做错了?加载/打开已构建的数据库db的方法正确吗

您从未初始化过db对象

排队

db=新的DataBaseHandler(getActivity())

在if/else语句之前或try/catch语句内部

  /*
   * intitlize object globaly
  **/
   db = new DataBaseHandler(getActivity()); 
   if(isOnline(getActivity()))

    {
       /**
        *  look at these you are
        *  intialize object when is online
        */
        //db = new DataBaseHandler(getActivity()); 
        getDataInAsyncTask();
        storeData(db);
        //db.close();
    }
    else
                {

    Toast.makeText(getActivity(), "No internet",
                Toast.LENGTH_LONG).show();

        try {
            db.openDataBase();
        } catch (SQLException sqle) {
            throw sqle;
        }
        getDataInDataBase(db);
        flag=0;
    }