我正在使用Couchbase在设备上本地存储数据库。我正在从我的服务类保存数据库。
public void saveToDatabase(String symbol, List<Date> dateList, List<String> closeList){
CbDatabase db = new CbDatabase(DB_NAME, this);
// create an object that contains data for a document
Map<String, Object> docContent = new HashMap<>();
docContent.put(SYMBOL, symbol);
docContent.put(DATE, dateList);
docContent.put(CLOSE, closeList);
String docId = null;
try {
// 1. Create
docId = db.create(docContent);
assert(docId != null);
txt += ("Created doc with id " + docId + "\n");
txt += ("\n\nRETRIEVE --> ");
// 2. Retrieve
docContent= db.retrieve(docId);
assert(docContent != null);
txt += ("Retrieved Doc " + String.valueOf(docContent) + "\n");
txt += ("\n\nDELETE --> ");
// 4. Delete
boolean deleted = db.delete(docId);
assert(deleted == true);
txt += ("Deleted document with id: " + docId + "\n");
txt += ("\n\nSUCCESS.");
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这是我用于Couchbase数据库的cdDatabase Helper类我不明白我可能会去哪里我是Couchbase的新手。
public CbDatabase(String dbname, Context context){
this.ctx = context;
/* Manages access to databases */
try {
manager = new Manager( new AndroidContext(ctx), Manager.DEFAULT_OPTIONS );
}
catch (IOException e) {
ErrorChecker.ShowException(ctx, R.string.err_create_manager, e );
return;
}
// create a name for the database and make sure the name is legal
// Only the following characters are valid:
// abcdefghijklmnopqrstuvwxyz0123456789_$()+-/
if ( ! Manager.isValidDatabaseName(dbname)) {
ErrorChecker.showError( ctx, R.string.err_db_name );
return;
}
// get existing db with that name
// or create a new one if it doesn't exist
try {
database = manager.getDatabase(dbname);
}
catch (CouchbaseLiteException e) {
ErrorChecker.ShowException(ctx, R.string.err_no_db, e );
return;
}
}
这是NullPointer的LOGCAT
Ĵ
ava.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getFilesDir()' on a null object reference
com.android.stockhawk W/System.err: at android.content.ContextWrapper.getFilesDir(ContextWrapper.java:203)
com.android.stockhawk W/System.err: at com.couchbase.lite.android.AndroidContext.getFilesDir(AndroidContext.java:40)
com.android.stockhawk W/System.err: at com.couchbase.lite.Manager.<init>(Manager.java:117)
com.android.stockhawk W/System.err: at com.android.stockhawk.quotes.db.CbDatabase.<init>(CbDatabase.java:41)
com.android.stockhawk W/System.err: at com.android.stockhawk.service.StockTaskService.saveToDatabase(StockTaskService.java:191)
com.android.stockhawk W/System.err: at com.android.stockhawk.service.StockTaskService.getStockQuotes(StockTaskService.jcom.android.stockhawk W/System.err: at com.android.stockhawk.service.StockTaskService.onRunTask(StockTaskService.java:141)
com.android.stockhawk W/System.err: at com.android.stockhawk.service.StockIntentService.onHandleIntent(StockIntentService.java:39)