2011-05-24 12 views
6

Acabo de empezar a estudiar google-api-java-client en Android. Se agregaron las siguientes 3 bibliotecas al proyecto. (Yo no uso de Maven.)google-api-java-client NetHttpTransport causa NoClassDefFoundError

  • google-api-cliente-1.4.1-beta.jar
  • google-api-client-googleapis-1.4.1-beta.jar
  • Google -api-client-googleapis-extensions-andr

Y eligió el código de muestra para trabajar. En la muestra, utilizó GoogleTransport que parece no estar disponible ahora.

HttpTransport transport = GoogleTransport.create(); 

Así que lo cambié a NetHttpTransport(), que se encuentra en la web.

import com.google.api.client.http.javanet.NetHttpTransport; 
... 
    HttpTransport transport = new NetHttpTransport(); 

Pero tengo la excepción.

05-24 15:54:33.310: ERROR/AndroidRuntime(4586): java.lang.NoClassDefFoundError: com.google.common.base.Preconditions 
05-24 15:54:33.310: ERROR/AndroidRuntime(4586):  at com.google.api.client.util.ClassInfo.<init>(ClassInfo.java:324) 
05-24 15:54:33.310: ERROR/AndroidRuntime(4586):  at com.google.api.client.util.ClassInfo.of(ClassInfo.java:77) 
05-24 15:54:33.310: ERROR/AndroidRuntime(4586):  at com.google.api.client.util.GenericData.<init>(GenericData.java:44) 
05-24 15:54:33.310: ERROR/AndroidRuntime(4586):  at com.google.api.client.http.HttpHeaders.<init>(HttpHeaders.java:37) 
05-24 15:54:33.310: ERROR/AndroidRuntime(4586):  at com.google.api.client.http.HttpTransport.<init>(HttpTransport.java:82) 
05-24 15:54:33.310: ERROR/AndroidRuntime(4586):  at com.google.api.client.http.javanet.NetHttpTransport.<init>(NetHttpTransport.java:35) 
05-24 15:54:33.310: ERROR/AndroidRuntime(4586):  at net.DailyTimer.test.MainActivity.onCreate(MainActivity.java:290) 

¿Qué pasa con esto?

+0

Estoy usando el ejemplo de la misma línea de código 'HttpTransport transport = new NetHttpTransport();' pero obtengo una ClassCastException. ¿Te topaste con eso? –

Respuesta

10

Como puede ver en el error, tiene una clase que falta, procedente de Guava. Puede descargar la guava lib y agregarla en su classpath, o usar maven (o Ivy) para administrar sus dependencias por usted.

+0

Gracias por editar mi pobre pregunta. Y añadiendo un problema fijo de guayaba, gracias. No pude descubrir que necesito guayaba. Aprenderé sobre maven luego. – Tomcat

+0

pregunta estúpida, pero ¿cómo ves que com.google.common.base.Preconditions viene de Guava? – Hubert

+0

He estado trabajando con Guava durante bastante tiempo, así que lo reconocí, pero creo que solo una búsqueda en Google habría arrojado la misma respuesta :) –

Cuestiones relacionadas