【问题标题】:How to move Cloud Endpoints generated sources.jar library into Android project如何将 Cloud Endpoints 生成的 sources.jar 库移动到 Android 项目中
【发布时间】:2013-03-01 21:04:55
【问题描述】:

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 文件夹中)。这可能非常麻烦,尤其是当您有多个端点并且经常对其进行编辑时。

另见Error connecting android app to Google Cloud Endpoints: could not find class

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

【问题讨论】:

    标签: android google-cloud-endpoints


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我也有同样的问题。你似乎绕过了这个过程。将应用部署到 Playstore 后,您的应用还能运行吗?我的意思是,你的 appengine 代码应该在某处的服务器上远程,并且 android 代码应该能够以这种方式访问​​它。
    • 我认为your-appengine-project 你的意思是your-android-project
    • 我的意思是您的应用程序引擎项目,因为这是您要链接的库所在的位置。当为 Android 创建 .apk 文件时,它包含库的所有必要部分,但是您已在源代码中链接到它们。我一直在与 appengine 连接的 android 项目共享这样的文件夹。你试过这个吗?这对我很有效。每次我重新生成端点库时都没有移动代码。
    • 我同意这样的共享文件夹效果很好,但我认为您的解决方案存在问题。您正在将 Android 端点库生成到您的应用程序引擎项目中,而不是通常将它们生成到 Android 项目中的解决方案。那么当你生成 iOS 或 javascript 库时会发生什么?在我看来,Google 犯了一个错误,即为所有人使用相同的路径。
    • 为什么不能使用我在 iOS 或 javascript 中描述的完全相同的技术?只需将链接资源链接到正确的目录即可。
    【解决方案2】:

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

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

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

      connectedProject=[目标安卓项目名称]
      eclipse.preferences.version=1

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

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

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

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

    【讨论】:

    • 谢谢汤姆。我想我终于找到了一个简单的解决方案,看我的回答
    猜你喜欢
    • 1970-01-01
    • 2014-05-03
    • 2013-08-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多