1

我正在尝试使用 Eclipse 插件从 Google App-Engine 项目生成“Cloud Endpoint Client Library”,但它失败并出现异常:InvocationTargetException - “所有具有相同 API 名称和版本的 API 类必须具有完全相同的 API-宽配置”。我在 MAC OS X 10.8.4 上使用 Eclipse 4.2 和 Google App-Engine 插件 1.8.3。奇怪的是:在运行具有相同 Eclipse 和插件版本的 Windows 的 PC 上,从项目生成库不会引发任何异常。

4

2 回答 2

1

我遇到了同样的问题。我最终从所有端点类中删除了资源属性,因为这是唯一的区别。

@Api(name = "shoppingassistant",
// resource = "deviceinfos",
version = "v1", namespace = @ApiNamespace(ownerDomain = ApiKeysAndIds.API_OWNER, ownerName = ApiKeysAndIds.API_OWNER, packagePath = ApiKeysAndIds.API_PACKAGE_PATH), clientIds = {
        ApiKeysAndIds.ANDROID_CLIENT_ID, ApiKeysAndIds.IOS_CLIENT_ID, ApiKeysAndIds.WEB_CLIENT_ID }, audiences = { ApiKeysAndIds.AUDIENCE_ID })

该项目现在编译,我能够生成客户端库。(我还没试过android项目)

于 2014-01-23T00:53:00.007 回答
0

虽然@Api 注释中的所有属性必须与 API 中的所有类匹配,但您还可以使用@ApiClass 注释来提供不需要在类之间完全相同的属性。

对于这种情况:

@Api(name = "shoppingassistant",
version = "v1", namespace = @ApiNamespace(ownerDomain = ApiKeysAndIds.API_OWNER,
    ownerName = ApiKeysAndIds.API_OWNER, packagePath = ApiKeysAndIds.API_PACKAGE_PATH),
clientIds = {
    ApiKeysAndIds.ANDROID_CLIENT_ID, ApiKeysAndIds.IOS_CLIENT_ID, ApiKeysAndIds.WEB_CLIENT_ID},
audiences = {ApiKeysAndIds.AUDIENCE_ID})
@ApiClass(resource = "deviceinfos")

在此处阅读完整教程

于 2014-10-16T14:27:40.160 回答