Ho un'app Android che deve controllare se c'è già un record nel database e, in caso contrario, elaborare alcune cose ed eventualmente inserirle e semplicemente leggere i dati dal database se i dati esistono. Sto usando una sottoclasse di SQLiteOpenHelper per creare e ottenere un'istanza riscrivibile di SQLiteDatabase, che pensavo si occupasse automaticamente di creare la tabella se non esisteva già (poiché il codice per farlo è in onCreate (... ) metodo).
Tuttavia, quando la tabella NON esiste ancora e il primo metodo eseguito sull'oggetto SQLiteDatabase che ho è una chiamata a query (...), il mio logcat mostra un errore di "I / Database (26434): sqlite restituito: errore code = 1, msg = no such table: appdata "e, abbastanza sicuro, la tabella appdata non viene creata.
Qualche idea sul perché?
Sto cercando un metodo per verificare se la tabella esiste (perché se non lo è, i dati non sono certamente in essa, e non ho bisogno di leggerli finché non ci scrivo, il che sembra creare la tabella correttamente), o un modo per assicurarsi che venga creato, ed è solo vuoto, in tempo per la prima chiamata per interrogare (...)
EDIT
Questo è stato pubblicato dopo le due risposte seguenti:
Penso di aver trovato il problema. Per qualche motivo ho deciso che doveva essere creato un diverso SQLiteOpenHelper per ogni tabella, anche se entrambi accedono allo stesso file di database. Penso che il refactoring di quel codice per utilizzare un solo OpenHelper e la creazione di entrambe le tabelle all'interno di onCreate potrebbe funzionare meglio ...