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



按照此处概述的步骤操作:

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 中,当您右键单击应用程序引擎项目时,有一个用于"生成云端点客户端库"的右键单击菜单选项。但是,在Android Studio(v1.0.0(中没有等效的选项。

这是谷歌的遗漏还是我错过了什么。

从 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 Studio 1.0.1开始,原始的Eclipse指令也有点过时了,"Builder"不再埋藏在你创建的Endpoint类中。 相反,它被滚动到一个单独的 API 类中,以描述生成器和关联的代码。

请参阅: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);
                }
            });

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

同时,有关在 AS 中生成端点的文档,请参见此处 https://cloud.google.com/tools/android-studio/

不再有"生成云端点客户端库"任务,因为 Android Studio 工作流程中不需要它。 只需构建项目即可确保客户端库可用于您的 android 应用程序。

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

正如Lucien Murray-Pitts所解释的那样,生成器不在端点类中,而是在自动生成的XXXXApi类中。

想象一下,你的java bean是包com.example.后端下一个名为Portfolio的类。

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

import com.example.backend.portfolioApi.PortfolioApi;

然后你可以做

PortfolioApi.Builder

builder = new PortfolioApi.Builder(....

最新更新