2

我正在创建一个 Android 应用程序并尝试通过 Google APIs 客户端使用 Google Places API。我一直在关注这个例子: http ://ddewaele.blogspot.com/2011/05/introducing-google-places-api.html

我在创建用于创建 HTTP 请求工厂的 HTTP 传输对象时遇到问题。一切都在 Eclipse 中编译得很好,但是当我在手机上运行时进行调试时,我在这里的第一行得到了一个 classnotfound :

HttpTransport transport = new ApacheHttpTransport();
HttpRequestFactory httpRequestFactory = createRequestFactory(transport);
公共静态 HttpRequestFactory createRequestFactory(HttpTransport 传输) {
    return transport.createRequestFactory(new HttpRequestInitializer() {
        @覆盖
        公共无效初始化(HttpRequest 请求)抛出 IOException {
            request.headers.authorization = "...";
        }
    });
}

根据 HTTP 传输类的 JavaDoc:

安卓:

  • 从 SDK 2.3 开始,强烈建议使用 com.google.api.client.javanet.NetHttpTransport。他们的 Apache HTTP 客户端实现没有得到很好的维护。
  • 对于 SDK 2.2 及更早版本,请使用 com.google.api.client.apache.ApacheHttpTransport。不推荐使用 com.google.api.client.javanet.NetHttpTransport,因为 HttpURLConnection 的 Android SDK 实现中存在一些错误。

我在 2.2 上运行,所以我尝试使用 ApacheHTTPTransport。我也尝试过 NetHTTPTransport,但我得到了同样的东西(classnotfound)。

有什么想法/例子吗?

谢谢!

4

1 回答 1

2

为了使用 Google API 客户端在 Android 环境中运行 Places API,您的 Android 项目中需要具有以下依赖项:

  • M2_REPO/commons-codec/commons-codec/1.3/commons-codec-1.3.jar
  • M2_REPO/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
  • M2_REPO/com/google/api/client/google-api-client/1.4.1-beta/google-api-client-1.4.1-beta.jar
  • M2_REPO/com/google/api/client/google-api-client-googleapis/1.4.1-beta/google-api-client-googleapis-1.4.1-beta.jar
  • M2_REPO/com/google/code/gson/gson/1.6/gson-1.6.jar
  • M2_REPO/com/google/guava/guava/r08/guava-r08.jar
  • M2_REPO/org/apache/httpcomponents/httpclient/4.0.3/httpclient-4.0.3.jar
  • M2_REPO/org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
  • M2_REPO/org/codehaus/jackson/jackson-core-asl/1.6.5/jackson-core-asl-1.6.5.jar
  • M2_REPO/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
于 2011-06-03T08:14:15.317 回答