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