This question already has an answer here:
I am getting this error:
12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: java.lang.NullPointerException: Attempt to invoke virtual method 'android.database.sqlite.SQLiteDatabase android.content.Context.openOrCreateDatabase(java.lang.String, int, android.database.sqlite.SQLiteDatabase$CursorFactory, android.database.DatabaseErrorHandler)' on a null object reference 12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223) 12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187) 12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at com.example.fixxxera.finalmapapp.DatabaseHandler.getExistingMarkers(DatabaseHandler.java:77) 12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at com.example.fixxxera.finalmapapp.RetrieveMarkers.doInBackground(RetrieveMarkers.java:25) 12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at com.example.fixxxera.finalmapapp.RetrieveMarkers.doInBackground(RetrieveMarkers.java:14) 12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:288) 12-16 21:35:47.043 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237) 12-16 21:35:47.044 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 12-16 21:35:47.044 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 12-16 21:35:47.044 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 12-16 21:35:47.044 2279-2333/com.example.fixxxera.finalmapapp W/System.err: at java.lang.Thread.run(Thread.java:818)
when i try to get all rows in database. This is my method:
public ArrayList<Markers> getExistingMarkers() {
ArrayList<Markers> list = new ArrayList<>();
String query = "SELECT * FROM " + TABLE_LOCATIONS;
Cursor curs=null;
try{
SQLiteDatabase db = getReadableDatabase();
curs= db.rawQuery(query, null);
curs.moveToFirst();
if (curs.isFirst()){
do {
Markers marker = new Markers();
marker.set_address(curs.getString(1));
marker.set_country(curs.getString(2));
marker.set_lat(Double.valueOf(curs.getString(3)));
marker.set_lng(Double.valueOf(curs.getString(4)));
marker.set_image(curs.getString(5));
list.add(marker);
}while(!curs.isAfterLast());
}
}catch(NullPointerException e){
e.printStackTrace();
}finally {
if (curs != null) {
curs.close();
}
}
return list;
}
I did check when i added the markers inside and i get line numbers from my ADD method. so i am quite sure they are inside. The error shows this line:
SQLiteDatabase db = getReadableDatabase();
as a problem. I am trying to save the markers in DB and get them back after relaunching the app. They are still inside after close right?
Aucun commentaire:
Enregistrer un commentaire