尝试从Google-app-engine项目生成“Cloud Endpoint Client Library”在MAC OS X中失败

时间:2013-08-26 07:12:26

标签: eclipse macos google-app-engine

我正在尝试使用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上,从项目生成库不会引起任何异常。

2 个答案:

答案 0 :(得分: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项目)

答案 1 :(得分: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")

阅读完整教程here