After making a lot of research on this:
I found that you should not have any property in your map which has a key starting with underscore character '_'
because it is reserved for CouchbaseLite
.
CouchbaseLite currently does not give you a proper exception message for this so you will be stuck. The only thing you need to take care is to not to include any such key in your map.
Like if you have _id and _rev fields in your class(obj) then you need to remove them
map.remove("_id");
map.remove("_rev");
before calling:
try {
document.putProperties(map);
} catch (CouchbaseLiteException e) {
e.printStackTrace();
}