按照此处概述的步骤操作:
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.Builderbuilder = new PortfolioApi.Builder(....