Ricezione di un NullPointerException quando si chiama un cursore in Android
-
20-09-2019 - |
Domanda
Sto creando un'applicazione che tiene traccia della posizione degli utenti utilizzando il GPS, memorizza la longitudine e la latitudine in un database utilizzando un provider di contenuti poi uscita la prima lunga e lat ad un mapview.
Sono in grado di creare il cursore con questa riga di codice:
Cursor c = getContentResolver().query(GPSContentProvider.CONTENT_URI,
null, null, null, null);
startManagingCursor(c);
Tuttavia, quando faccio una chiamata per passare alla prima riga nel database o anche provare a chiudere il cursore usando c.close();
ho ricevuto un NullPointerException
.
Modifica:. Giusto per chiarire, io in grado di memorizzare la longitudine, latitudine e il tempo in millisecondi di all'interno del database, il problema sta poi prendendo i dati dal database e displyaing questo su una mappa
codice aggiornato:
public static final String AUTHORITY = "application.android.prototype";
// followed by the CONTENT_URI
public static final Uri CONTENT_URI = Uri.
parse("content://" + AUTHORITY + "/gpspoints");
autorizzazioni aggiornate:
<provider android:name="GPSDataContentProvider" android:authorities="application.android.prototype">
</provider>
Soluzione
Ho deciso di non utilizzare il ContentProvider alla fine come il database di mia applicazione è solo destinato ad essere utilizzato da quella singola applicazione.
Invece, ho creato un database tipico utilizzando SQL e usato una simile funzione di cursore:
SQLiteDatabase db = waypoints.getReadableDatabase (); Cursore cursore = db.query (TABLE_NAME, DA, null, null, null, null, ORDER_BY); startManagingCursor (cursore); cursore di ritorno;