【发布时间】:2014-11-14 14:02:30
【问题描述】:
我有这种情况:
- Android App->呼叫端点->getPerson(email)
- Endpoint 返回我 1 个 Person 对象 p
- 我在 android 应用中使用这个对象并更改了一些值。
- Android App->调用端点->updatePerson(p)
我从服务器收到此错误:
com.google.api.server.spi.SystemService 调用服务方法:空 java.lang.NullPointerException 在 com.google.appengine.api.datastore.Key.getAppId(Key.java:279) 在 com.google.appengine.api.datastore.KeyTranslator.convertToPb(KeyTranslator.java:50) 在 com.google.appengine.api.datastore.EntityTranslator.convertToPb(EntityTranslator.java:48) 在 com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$4.toPb(AsyncDatastoreServiceImpl.java:178) 在 com.google.appengine.api.datastore.AsyncDatastoreServiceImpl$4.toPb(AsyncDatastoreServiceImpl.java:155) 在 com.google.appengine.api.datastore.Batcher$BatchIterator.(Batcher.java:180) 在 com.google.appengine.api.datastore.Batcher$2.(Batcher.java:317) 在 com.google.appengine.api.datastore.Batcher.getBatches(Batcher.java:317) 在 com.google.appengine.api.datastore.AsyncDatastoreServiceImpl.doBatchPut(AsyncDatastoreServiceImpl.java:365) 在 com.google.appengine.api.datastore.BaseAsyncDatastoreServiceImpl.put(BaseAsyncDatastoreServiceImpl.java:293) 在 com.google.appengine.api.datastore.BaseAsyncDatastoreServiceImpl.put(BaseAsyncDatastoreServiceImpl.java:239) 在 com.google.appengine.api.datastore.DatastoreServiceImpl.put(DatastoreServiceImpl.java:61) 在 com.google.appengine.datanucleus.WrappedDatastoreService.put(WrappedDatastoreService.java:112) 在 com.google.appengine.datanucleus.EntityUtils.putEntitiesIntoDatastore(EntityUtils.java:766) 在 com.google.appengine.datanucleus.DatastorePersistenceHandler.insertObjectsInternal(DatastorePersistenceHandler.java:314) 在 com.google.appengine.datanucleus.DatastorePersistenceHandler.insertObject(DatastorePersistenceHandler.java:218) 在 org.datanucleus.state.JDOStateManager.internalMakePersistent(JDOStateManager.java:2381) 在 org.datanucleus.state.JDOStateManager.flush(JDOStateManager.java:3778) 在 org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3888) 在 org.datanucleus.ObjectManagerImpl.flushInternal(ObjectManagerImpl.java:3811) 在 org.datanucleus.ObjectManagerImpl.flush(ObjectManagerImpl.java:3751) 在 org.datanucleus.ObjectManagerImpl.preCommit(ObjectManagerImpl.java:4141) 在 org.datanucleus.ObjectManagerImpl.transactionPreCommit(ObjectManagerImpl.java:428) 在 org.datanucleus.TransactionImpl.internalPreCommit(TransactionImpl.java:398) 在 org.datanucleus.TransactionImpl.commit(TransactionImpl.java:287) 在 org.datanucleus.ObjectManagerImpl.close(ObjectManagerImpl.java:1090) 在 org.datanucleus.api.jpa.JPAEntityManager.close(JPAEntityManager.java:193)这不是从数据存储中检索到的同一个对象吗?
【问题讨论】:
-
您能否发布带有注释的相关端点 api 类方法,以及调用这些函数的 android 代码?在invokeservicemethod上获取空指针异常好像你调用的api方法不存在,所以可能是注释/调用不正确。
标签: java android google-app-engine google-cloud-datastore