4

Google Plugin for Eclipse 包含一个自动生成云端点客户端库的工具。但是似乎没有一种简单的方法可以将生成的 source.jar 文件移动到您的 Android 源代码中。

文档https://developers.google.com/appengine/docs/java/endpoints/consume_android

Endpoints 生成会生成一个源 jar 文件。将此 jar 文件的内容添加到您的 Android 项目中。

似乎不可能将 source.jar 文件放入 Android /lib 或 /libs,因为源是 .java 而不是 .class 形式。因此,我只需手动复制 GPE 生成的源代码(他们将其放在 AppEngine 项目的 endpoints-lib 文件夹中)。这可能非常麻烦,尤其是当您有多个端点并且经常对其进行编辑时。

另请参阅将 android 应用程序连接到 Google Cloud Endpoints 时出错:找不到类

有谁知道直接在Android项目中实际使用sources.jar文件的方法?谢谢。

4

2 回答 2

6

这个问题在 Eclipse 中通过在目录中添加链接资源来解决

your-appengine-project/endpoint-libs/libYourEndpoint-v1/yourendpoint/yourendpoint-generated-source/

您可以在 Eclipse 中通过在 Properties->Java Build Path->Source Link 中添加源链接来执行此操作

在此之后,您的 Android 或客户端项目将看到使用“Google->Generate Client Endpoint Library”生成的任何更改

于 2013-03-19T15:38:23.137 回答
4

这个想法是生成客户端库的向导也会将其复制到您的客户端项目中。

但这取决于例如您最初是如何创建项目的,即使它确实有效,如果您有多个客户项目,或者更改您的客户项目怎么办......所以这里有一些想法:

  • 我找到了一个文件,该文件指定将客户端库复制到哪个项目(在 .settings 文件夹中):com.google.gdt.eclipse.appengine.swarm.prefs:

    connectedProject=[target-android-project-name]
    eclipse.preferences.version=1

手动更改此文件对我有用,但如果它不存在,我没有尝试手动创建它。

  • 您询问的另一个解决方案是手动复制文件。就我而言,我能够将生成的文件从 [gae-project]\endpoint-libs 复制到 [android-project]\endpoint-libs。如果我没记错的话,您必须找到源 jar 文件(它在您复制的文件中并且很容易找到)并将它们解压缩到“[endpoint-name]-v1-generated-source”文件夹中。您在找到 jar 的同一文件夹中创建此文件夹。

显然这不是一个很好的解决方案,所以..

  • 有一个可以用来代替 GPE 向导的 endpoints.cmd/bat - 我建议您查看它是否有用于复制和提取生成的库的命令。我相信您会在 GAE/J SDK 的“bin”文件夹中找到它。
于 2013-03-15T22:06:22.220 回答