2

我正在创建一个Android应用并试图通过Google API客户端使用Google Places API。我一直在关注这个示例: http://ddewaele.blogspot.com/2011/05/introducing-google-places-api.html为Android HTTP请求创建Google HTTP传输对象

我在创建HTTP传输对象以创建HTTP请求工厂时遇到问题。一切都在eclipse编译罚款,但是当我调试我的手机上运行时,我得到一个ClassNotFound的第一行上的位置:

HttpTransport transport = new ApacheHttpTransport(); 
HttpRequestFactory httpRequestFactory = createRequestFactory(transport); 
 
public static HttpRequestFactory createRequestFactory(HttpTransport transport) { 
    return transport.createRequestFactory(new HttpRequestInitializer() { 
     @Override 
     public void initialize(HttpRequest request) throws IOException { 
      request.headers.authorization = "..."; 
     } 
    }); 
} 

根据JavaDoc中的HTTP传输类:

安卓:

  • 与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 不推荐,因为 的Android SDK执行 HttpURLConnection中的一些错误。

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

任何想法/示例?

谢谢!

+0

使用ApacheHTTPTransport是可以的。你能发布你看到的堆栈跟踪吗? – ddewaele 2011-06-03 07:01:15

+1

如果您正在构建需要与所有Android SDK配合使用的Android应用程序,只需调用AndroidHttp.newCompatibleTransport(),它将根据Android SDK级别决定使用这两个应用程序。 – 2011-09-15 09:59:38

回答

2

为了运行在使用谷歌API客户端在Android环境的地方API,你需要具备以下依赖Android专案:

  • M2_REPO /公地编解码器/公地编解码器/1.3/commons-codec-1.3.jar
  • M2_REPO /共享记录/共享记录/ 1.1.1 /共享记录-1.1.1.jar
  • M2_REPO/COM /谷歌/ API /客户端/谷歌-api-client/1.4.1-beta/google-api-client-1.4.1-beta.jar
  • M2_REPO/com/google/api/client/google-api-client-googleap is/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 /谷歌/番石榴/芭乐/ R08 /番石榴r08.jar
  • M2_REPO /组织/阿帕奇/ httpcomponents/HttpClient的/ 4.0.3/HttpClient的-4.0.3.jar
  • M2_REPO /组织/阿帕奇/ 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