Couchbase:空对象引用

时间:2016-11-17 16:37:39

标签: java android couchbase-lite

我正在使用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)

0 个答案:

没有答案