我在从服务器读取数据后使用领域来存储数据,但是当我尝试将其存储在领域中时,我得到“java.lang.IllegalArgumentException:'value'不是有效的托管对象”这是我在领域中存储数据的方法的代码public void addOrdersToLocalDB(Order order,List<Product> products) { realmAsyncTask = myRealm.executeTransactionAsync(new Realm.Transaction() { @Override public void execute(Realm realm) { Order localOrder = realm.createObject(Order.class, order.getId()); localOrder.setName(order.getName()); localOrder.setTimestamp(order.getTimestamp()); localOrder.setDate(order.getDate()); localOrder.setCost(order.getCost()); localOrder.setProductNums(order.getProductNums()); localOrder.setTime(order.getTime()); Log.d("orders_data", "realm order : " + order.getName()); RealmList<Product> localProducts = new RealmList<>(); for (Product product : products){ Log.d("orders_data", "realm product : " + product.getName()); Product localProduct = realm.createObject(Product.class, product.getId()); localProduct.setName(product.getName()); localProduct.setBarCode(product.getBarCode()); localProduct.setCurrentQuantity(product.getCurrentQuantity()); localProduct.setStatus(product.getStatus()); localProduct.setOldUnitPrice(product.getOldUnitPrice()); localProduct.setImage(product.getImage()); localProduct.setNeededQuantity(product.getNeededQuantity()); localProduct.setTotalPrice(product.getTotalPrice()); localProduct.setDescription(product.getDescription()); localProduct.setUnitPrice(product.getUnitPrice()); localProduct.setTimeStamp(product.getTimeStamp()); localProducts.add(product); } 我搜索了该错误并在此处检查了此问题,但仍然收到错误,希望有人可以提供帮助吗?
1 回答

largeQ
TA贡献2039条经验 获得超8个赞
替换localProducts.add(product)
为localProducts.add(localProduct)
,您已初始化localProduct
但忘记将他添加到列表中,而是添加了不受 Realm 管理的产品。
添加回答
举报
0/150
提交
取消