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

时间:2014-12-10 22:04:59

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

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

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)

中没有等效选项

这是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原始链接中描述的单步过程耗时更多。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

我们正在努力更新购物卡丁车样品以使用Android Studio。

与此同时,可以在https://cloud.google.com/tools/android-studio/

中找到AS中生成端点的文档

由于Android Studio工作流程中不需要,因此不再有“生成云端点客户端库”任务。简单地构建项目将确保您的Android应用程序可以使用客户端库。

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

答案 2 :(得分:1)

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

想象一下,您的java bean是一个名为Portfolio的类,位于包com.example.backend

之下

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

import com.example.backend.portfolioApi.PortfolioApi;

然后你可以做

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