setapplicationname library google example android google-api
google-plus-java-starter_v5.zip

library - No se encontrĂ³ la API de cliente de Android y Google NetHttptransport Class



library api (4)

Intento usar la biblioteca de API generada por Google por primera vez para Android. He tomado el código del Programa de muestra proporcionado por Google . Mi código parece

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import android.app.Activity; import android.os.Bundle; // Core Google API import com.google.api.client.auth.oauth2.draft10.AccessTokenResponse; import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessProtectedResource; import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAccessTokenRequest.GoogleAuthorizationCodeGrant; import com.google.api.client.googleapis.auth.oauth2.draft10.GoogleAuthorizationRequestUrl; import com.google.api.client.http.ByteArrayContent; import com.google.api.client.http.GenericUrl; import com.google.api.client.http.HttpRequest; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponse; import com.google.api.client.http.HttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson.JacksonFactory; // Google+ API import com.google.api.services.plus.*; public class GooglePlusActivity extends Activity { // Want data about authenticated user private static final String SCOPE = "https://www.googleapis.com/auth/plus.me"; // private static final String CALLBACK_URL = "urn:ietf:wg:oauth:2.0:oob"; // private static final HttpTransport TRANSPORT = new NetHttpTransport(); private static final JsonFactory JSON_FACTORY = new JacksonFactory(); private static final String CLIENT_ID = "XXXXXXXXXXXXXXX"; private static final String CLIENT_SECRET = "XXXXXXXXXXXXXX"; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // Generate the URL to which we will direct users String authorizeUrl = new GoogleAuthorizationRequestUrl(CLIENT_ID, CALLBACK_URL, SCOPE).build(); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { String authorizationCode = in.readLine(); // Exchange for an access and refresh token GoogleAuthorizationCodeGrant authRequest = new GoogleAuthorizationCodeGrant(TRANSPORT, JSON_FACTORY, CLIENT_ID, CLIENT_SECRET, authorizationCode, CALLBACK_URL); authRequest.useBasicAuthorization = false; AccessTokenResponse authResponse = authRequest.execute(); String accessToken = authResponse.accessToken; GoogleAccessProtectedResource access = new GoogleAccessProtectedResource(accessToken, TRANSPORT, JSON_FACTORY, CLIENT_ID, CLIENT_SECRET, authResponse.refreshToken); HttpRequestFactory rf = TRANSPORT.createRequestFactory(access); System.out.println("Access token: " + authResponse.accessToken); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Plus plus = new Plus(new NetHttpTransport(), new JacksonFactory()); } }

Sin embargo, la siguiente línea:

private static final HttpTransport TRANSPORT = new NetHttpTransport();

causa una excepción:

10-04 13:33:28.954: ERROR/AndroidRuntime(5925): Caused by: java.lang.NoClassDefFoundError: com.google.api.client.http.javanet.NetHttpTransport

Tengo las siguientes bibliotecas agregadas a la ruta de compilación:

google-api-client-1.5.0-beta.jar google-api-services-plus-v1-1.2.2-beta.jar

y estas bibliotecas de dependencia:

guava-r09 httpclient-4.0.3 jackson-core-asl-1.6.7 gson-1.6

Agregué las dependencias solo por desesperación ... ya que no puedo ver que las necesito. Todas mis declaraciones de importación se resuelven correctamente en el momento de la compilación, entonces ¿por qué debería obtener este error?

Estoy usando Eclipse Indigo en Windows 7.

Agregué los siguientes archivos jar:

google-api-client-1.5.0-beta
google-api-client-extensions-1.5.0-beta
google-api-client-extensions-android2-1.5.0-beta
google-api-services-plus-v1-1.2.2-beta
google-http-client-1.5.0-beta
google-http-client-extensions-1.5.0-beta
google-http-client-extensions-android2-1.5.0-beta
google-oauth-client-1.5.0-beta
google-oauth-client-extensions-1.5.0-beta
gson-1.6
guava-r09
httpclient-4.0.3
httpcore-4.0.1
jackson-core-asl-1.6.7

esto resolvió mi problema Sin embargo, todavía no estoy seguro de cómo estos archivos corresponden a la lista de bibliotecas en la página wiki y también de por qué son necesarios cuando mis importaciones se resuelven durante el tiempo de compilación.



Puede ser un poco tarde para este, pero el jar que está buscando es google-http-client-1.5.0-beta.jar

Este archivo jar define com.google.api.client.http. * Y com.google.api.client.json. *


Debe agregar explícitamente la referencia de la biblioteca de google-http-client-1.5.0-beta.jar (haga clic derecho en proyecto-> Propiedades-> Ruta de compilación de Java-> Agregar JAR externos), no crea la ruta de la clase. Si no lo hace, en el archivo apk no contiene los datos requeridos.
Puede descargar la biblioteca Google plus desde aquí google-plus-java-starter_v5.zip


plus = Plus.builder(transport, jsonFactory).setApplicationName("Google-PlusSample/1.0") .setHttpRequestInitializer(accessProtectedResource) .setJsonHttpRequestInitializer(new JsonHttpRequestInitializer() { @Override public void initialize(JsonHttpRequest request) { PlusRequest plusRequest = (PlusRequest) request; plusRequest.setPrettyPrint(true); } }).build();

usar esto en lugar de

Plus plus = new Plus(new NetHttpTransport(), new JacksonFactory());