无法在Android项目中导入google cloud端点客户端库类

Tom*_*Tom 8 python eclipse google-app-engine android google-cloud-endpoints

我在使用Google Cloud Endpoints时遇到了困难.我有一个在GAE上运行的Python端点项目,它使用api explorer完美运行.但是我正在努力正确生成客户端库并在我的Android应用程序中使用它.我尝试了很多样本​​项目,每次都遇到同样的问题; 我无法从客户端库导入和使用模型类.

这就是我正在做的事情(对于这个例子,我将在https://github.com/GoogleCloudPlatform/appengine-endpoints-helloendpoints-python上使用helloworld api python示例)

  1. 解压缩示例代码
  2. 通过导航到文件夹并运行来生成客户端库

    <gae-sdk>\endpointscfg.py get_client_lib java helloworld_api.HelloWorldApi
    
    Run Code Online (Sandbox Code Playgroud)
  3. 解压生成的文件夹并复制到eclipse中的项目根目录

  4. 在Eclipse中添加"your_app_id_appspot_com-helloworld-v1-20140310110152-java-1.17.0-rc-sources.jar"来构建路径(右键单击JAR>构建路径>添加到构建路径)

在这个阶段,我可以导入,com.appspot.your_app_id.helloworld.model.*但我无法导入com.appspot.your_app_id.helloworld.model.Greeting

任何人都可以了解这里发生的事情吗?我已尝试了许多不同的方法来使其工作,但每次都有同样的问题.

非常感谢,

汤姆

Pac*_*Sky 4

问题是,默认情况下,生成的 zip 文件仅包含源 jar,而不是 Android 应用程序可以使用的实际编译的库 jar。

这是解决方案:

  1. 在后端 api 文件夹中(来自 app.yaml 所在的同一位置),将客户端库生成为 gradle 库,如下所示:
    <gae-sdk-path>\endpointscfg.py get_client_lib java -bs gradle helloworld_api.HelloWorldApi

  2. 现在您将拥有一个 helloworld-v1.zip。解压缩此文件(可以在这里或在方便的地方,例如〜/ temp)

  3. 这将创建一个名为 helloworld 的文件夹,其中应该有一个 build.gradle 和一个 src 文件夹。

  4. 使用此文件夹中的“gradle install”构建客户端库。

  5. 复制build/libs/helloworld-v1-1.X.X-SNAPSHOT.jar到 Android 应用程序的 libs 文件夹中。

  6. 通过右键单击/添加为库将其添加为 Android Studio 中的库。

  7. 您的类现在应该可以正确解析。

步骤 4 应该将刚刚构建的客户端库安装到本地 Maven 存储库中。您可以按照提取的 helloworld/ 文件夹中的 readme.html 中的说明直接与 Android 应用程序的 gradle 构建系统集成,而不是复制手动构建的 jar。