1

我正在尝试在 CouchbaseLite 中保存一个新文档,但遇到此问题,出现异常。

com.couchbase.lite.CouchbaseLiteException

异常消息:

com.couchbase.lite.CouchbaseLiteException
com.couchbase.lite.CouchbaseLiteException
null
[1462915328, 451, 1462915272, 5, 1463020336, 137, 1463020280, 9, 1462744624, 39,        1462943280, 4, 1463283568, 58, 1463284808, 9, 1459791184, 28, 1463191704, 0, 1463287160, 0, 1463294584, 8, 1463285984, 2, 1463298952, 2, 1461828864, 24, 1459658792, 6, 1461922408, 22, 1459660472, 15, 1461916072, 3, 1461898944, 8, 1459489944, 18, 1459609664, 2, 1459600392, 2, 1459600456, 4, 1460186072, 84, 1460049056, 48, 1459080768, 0, 1459081896, 17, 1460208056, 11, 1460002968, 66, 1459100640, 0]
null
Status: 400
[]

以为异常不清楚背后发生了什么,不知道该怎么办,从中解读什么。

这是我的代码:

Map<String, Object> map = new HashMap<String, Object>();
    map = (Map<String, Object>) gson.fromJson(json, map.getClass());
    //map.put("_id", UUID.randomUUID().toString());

    Document document = mDatabaseLocal.createDocument();

    try {
        document.putProperties(map);
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    }
4

1 回答 1

1

在对此进行了大量研究后:

我发现你的地图中不应该有任何以下划线字符 '_'开头的键的属性,因为它是为CouchbaseLite.

CouchbaseLite 当前没有为此提供适当的异常消息,因此您将被卡住。您唯一需要注意的是不要在地图中包含任何此类键。

就像如果你的类(obj)中有 _id 和 _rev 字段,那么你需要删除它们

map.remove("_id");
map.remove("_rev");

打电话之前:

try {
        document.putProperties(map);
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    }
于 2014-04-03T11:23:36.260 回答