使用实体类设计模式在Android Studio中生成Cloud Endpoint客户端库

问题描述 投票:0回答:3

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

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 客户端库”的右键菜单选项。但是,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-cloud-platform google-app-engine google-cloud-endpoints
3个回答
3
投票

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

现在,从 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);
                }
            });

2
投票

我们正在努力更新购物卡丁车示例以使用 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


1
投票

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

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

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

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

然后你就可以做

PortfolioApi.Builder 构建器 = new PortfolioApi.Builder(....

© www.soinside.com 2019 - 2024. All rights reserved.