为Cloud Endpoints类生成API元数据失败

从几个月到现在,我正在谷歌appengine的Android应用程序的后端工作。 直到昨天,一切都很顺利。 我在最近2个月没有生成端点,但是当我昨天尝试这样做时,错误出现了。

这就是场景。

  1. 在Android IDE(Eclipse 4.2)中,我点击“生成云端点客户端库”。
  2. 我要等很多时间……
  3. 出现错误(我将粘贴下面的堆栈跟踪)。

预期的输出 – >我的android项目中的所有ok和我的新端点库。
实际输出 – >(下面的堆栈跟踪)。

我正在使用Ubuntu 13.04 64bit的机器上工作。 我尝试了3种不同版本的appengine sdk(1.9.2,1.9.3,1.9.4)

报告的问题是这一个:

> com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request {"error": {"message": "Bad Request", "code": 400, "errors": [{"message": "api exception", "debug_info": "Cannot decode JSON Schema for: {u'parameterName': u'resource'}"}]}} *AppName*-AppEngine Unknown Google App Engine Cloud Endpoints Problem Marker 

堆栈跟踪是这样的:

 > java.lang.reflect.InvocationTargetException at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:82) at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121) Caused by: com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmGenerationException: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request {"error": {"message": "Bad Request", "code": 400, "errors": [{"message": "api exception", "debug_info": "Cannot decode JSON Schema for: {u'parameterName': u'resource'}"}]}} at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createClientLibFromApiConfig(SwarmApiCreator.java:144) at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createSwarmApi(SwarmApiCreator.java:258) at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmServiceCreator.create(SwarmServiceCreator.java:444) at com.google.gdt.eclipse.appengine.swarm.wizards.GenerateSwarmApiAction$1.run(GenerateSwarmApiAction.java:80) ... 1 more Caused by: com.google.appengine.repackaged.com.google.api.client.http.HttpResponseException: 400 Bad Request {"error": {"message": "Bad Request", "code": 400, "errors": [{"message": "api exception", "debug_info": "Cannot decode JSON Schema for: {u'parameterName': u'resource'}"}]}} at com.google.appengine.repackaged.com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1054) at com.google.api.server.spi.tools.CloudClientLibGenerator.postRequest(CloudClientLibGenerator.java:53) at com.google.api.server.spi.tools.CloudClientLibGenerator.generateClientLib(CloudClientLibGenerator.java:44) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.google.gdt.eclipse.appengine.swarm.wizards.helpers.SwarmApiCreator.createClientLibFromApiConfig(SwarmApiCreator.java:142) ... 4 more 

我已经多次尝试清理和构建项目,并在新构建之前手动删除旧的* .api * .discovery文件,但似乎没有任何工作。

你能帮我么? 谢谢

最后我解决了我的问题。 该错误发生在其中一个端点中的方法中,该端点将com.google.appengine.api.datastore.Blob作为参数。

为了找到我手动(从终端)执行的问题,我创建了云端点库,能够看到更详细的输出线,从而找出出现问题的端点。 (要了解如何操作,请阅读“使用endpoint.sh为Android生成客户端库”一节)