【问题标题】:Generate Cloud Endpoint Client Library in Android Studio using Entity Class Design Pattern使用实体类设计模式在 Android Studio 中生成 Cloud Endpoint 客户端库
【发布时间】:2015-02-09 06:42:45
【问题描述】:

按照此处列出的步骤进行操作:

https://cloud.google.com/developers/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial/

为了创建云端点,但使用 Android Studio 而不是 Eclipse,我被困在实体​​类设计模式的第 9 步,如下所述:

https://cloud.google.com/developers/articles/how-to-build-mobile-app-with-app-engine-backend-tutorial/#ecdp

在 Eclipse 中,当您右键单击应用引擎项目时,“生成 Cloud Endpoint Client 库”有一个右键单击菜单选项。但是,Android Studio (v1.0.0) 中没有等效选项

这是 Google 的遗漏还是我遗漏了什么。

从 Android Studio 中生成云端点客户端库的最佳解决方法是什么。

有没有办法从命令行做到这一点?

我确实在这里找到了 gradle 的步骤:

https://cloud.google.com/appengine/docs/java/endpoints/endpoints_tool

这里:

https://cloud.google.com/appengine/docs/java/endpoints/consume_android

但这些比 eclipse 原始链接中描述的单步过程要耗时得多。

【问题讨论】:

    标签: android google-app-engine android-studio google-cloud-endpoints


    【解决方案1】:

    我们正在努力更新购物车示例以使用 Android Studio。

    同时,在 AS 中生成端点的文档可以在这里找到https://cloud.google.com/tools/android-studio/

    不再有“生成 Cloud Endpoint 客户端库”任务,因为 Android Studio 工作流程中不需要它。只需构建项目即可确保您的 Android 应用可以使用客户端库。

    如果您希望能够使用 Gradle 从命令行手动执行一些端点客户端库步骤,请查看 appengine gradle 插件 https://github.com/GoogleCloudPlatform/gradle-appengine-plugin 的文档。

    【讨论】:

    • 您好,当您说“与此同时,可以在此处找到用于在 AS 中生成端点的文档cloud.google.com/mobile”,您能否确认您指的是右下角的 codelab 链接页面的一角?或者你的意思是另一个链接,在这个相当通用和复杂的页面上?提前致谢
    • 其实那个链接内容变了。我已经更新了我的回复中的链接。谢谢你告诉我。
    【解决方案2】:

    如上所述,库是为您自动编译的,另一点让我感到困惑的是从哪里获取 Builder。

    现在,从 Android Studio 1.0.1 开始,原始的 Eclipse 指令也有点过时了,“Builder”不再隐藏在您创建的 Endpoint 类中。相反,它被整合到一个单独的 API 类中来描述 Builder 和相关代码。

    见:https://github.com/GoogleCloudPlatform/gradle-appengine-templates/tree/master/HelloEndpoints

    Android 的端点使用现在看起来像这样:

    /* OLD
    MyEndpoint.Builder builder = ... */
    
    MyApi.Builder builder = new MyApi.Builder(AndroidHttp.newCompatibleTransport(), 
                    new AndroidJsonFactory(), null)
                // options for running against local devappserver
                // - 10.0.2.2 is localhost's IP address in Android emulator
                // - turn off compression when running against local devappserver
                .setRootUrl("http://10.0.2.2:8080/_ah/api/")
                .setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() {
                    @Override
                    public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException {
                        abstractGoogleClientRequest.setDisableGZipContent(true);
                    }
                });
    

    【讨论】:

      【解决方案3】:

      正如 Lucien Murray-Pitts 所解释的,Builder 不在 Endpoint 类中,而是在自动生成的 XXXXApi 类中。

      假设你的 java bean 是 com.example.backend 包下名为 Portfolio 的类

      您必须在 AsyncTask 类中添加以下导入:

      导入 com.example.backend.portfolioApi.PortfolioApi;

      然后你就可以了

      PortfolioApi.Builder builder = new PortfolioApi.Builder(....

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-14
        • 1970-01-01
        • 2016-05-23
        • 2014-05-03
        相关资源
        最近更新 更多