Tratando de usar la biblioteca google-play-services_lib pero obteniendo errores como 'GooglePlayServicesClient no resuelto a un tipo'

Que he hecho

Estoy trabajando a través de estos tutoriales:

  • Developer.android.com/training/location/index.html
  • Developer.android.com/google/play-services/setup.html
  • Developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

Y supongo que donde estoy atascado es la "Declaración de componentes de la biblioteca en el archivo de manifiesto" en la página anterior.

Supongo que esto significa que la biblioteca no se ha importado correctamente o que no estoy declarando algo. De hecho, yo apostaría que es mi culpa y probablemente necesito declarar cosas en el archivo de manifiesto o algo así. Sin embargo, todo mi googling de "declarar actividad googleplayservices manifiesto" me lleva a creer que tal vez no hay nada que declarar para esta biblioteca – de lo contrario seguramente habría encontrado algún tipo de ejemplo?

Gerente sdk

Se instalan los servicios de reproducción de Google
Google apis está instalado
No hay actualizaciones para ser instalado, por lo que no puede ser que haya algo fuera de fecha.

Importar el proyecto de biblioteca

He importado la biblioteca (clic derecho en mi proyecto> propiedades> android> añadir> play services lib).
Probado con la casilla de verificación 'is library', ambos marcados y desatados sin éxito.

Limpieza del proyecto y proyecto de biblioteca

He instalado y utilizado el proyecto> función limpia varias veces
Eclipse / ADT se ha reiniciado varias veces

ERRORES:

Description Resource Path Location Type GooglePlayServicesClient cannot be resolved to a type MainActivity.java /Atapp/src/com/atdev/atapp line 21 Java Problem Description Resource Path Location Type mLocationClient cannot be resolved MainActivity.java /Atapp/src/com/atdev/atapp line 184 Java Problem Description Resource Path Location Type Syntax error on token "mCurrentLocation", VariableDeclaratorId expected after this token MainActivity.java /Atapp/src/com/atdev/atapp line 162 Java Problem Description Resource Path Location Type The method onConnectionFailed(ConnectionResult) of type MainActivity must override or implement a supertype method MainActivity.java /Atapp/src/com/atdev/atapp line 126 Java Problem 

(entre otros).

Gracias por el consejo de antemano. Primer post por lo que espero haber preguntado correctamente y claro.

CÓDIGO

Archivo de manifiesto:

  <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.atdev.atapp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.atdev.atapp.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.atdev.atapp.Venue" android:label="@string/title_activity_venue" android:parentActivityName="com.atdev.atapp.MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.atdev.atapp.MainActivity" /> </activity> </application> </manifest> 

Actividad Principal java:

  package com.atdev.atapp; import android.app.Activity; import android.app.Dialog; import android.content.Intent; import android.content.IntentSender; import android.location.Location; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.EditText; import android.widget.Toast; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.location.LocationClient; public class MainActivity extends Activity implements GooglePlayServicesClient.ConnectionCallbacks, GooglePlayServicesClient.OnConnectionFailedListener { // ************************************************************************ // GLOBAL CONSTANTS // Define a request code to send to Google Play services. This code is returned in Activity.onActivityResult private final static int CONNECTION_FAILURE_RESOLUTION_REQUEST = 9000; // Set the contents of the venue search field to this string public final static String VENUE_SEARCH = "com.atroom.atroom.MESSAGE"; // Global variable to hold the current location Location mCurrentLocation; // Define a DialogFragment that displays the google play services error dialog public static class ErrorDialogFragment extends DialogFragment { // Global field to contain the error dialog private Dialog mDialog; // Default constructor. Sets the dialog field to null public ErrorDialogFragment() { super(); mDialog = null; } // Set the dialog to display public void setDialog(Dialog dialog) { mDialog = dialog; } // Return a Dialog to the DialogFragment. @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return mDialog; } } // ******************************************************************************** // GOOGLE PLAY SERVICES METHODS // Handle results returned to the FragmentActivity by Google Play services @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // Decide what to do based on the original request code switch (requestCode) { case CONNECTION_FAILURE_RESOLUTION_REQUEST : // If the result code is Activity.RESULT_OK, try to connect again switch (resultCode) { case Activity.RESULT_OK : // Try the request again break; } } } // Do the following to test whether Google Play Services are available and take relevant action private boolean servicesConnected() { // Check that Google Play services is available int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); // If Google Play services is available if (ConnectionResult.SUCCESS == resultCode) { // In debug mode, log the status Log.d("Location Updates","Google Play services is available."); // Continue return true; // Google Play services was not available for some reason } else { // Get the error code int errorCode = connectionResult.getErrorCode(); // Get the error dialog from Google Play services Dialog errorDialog = GooglePlayServicesUtil.getErrorDialog( errorCode, this, CONNECTION_FAILURE_RESOLUTION_REQUEST); // If Google Play services can provide an error dialog if (errorDialog != null) { // Create a new DialogFragment for the error dialog ErrorDialogFragment errorFragment = new ErrorDialogFragment(); // Set the dialog in the DialogFragment errorFragment.setDialog(errorDialog); // Show the error dialog in the DialogFragment errorFragment.show(getSupportFragmentManager(), "Location Updates"); } } } // Location Services calls the following on successful connection to client @Override public void onConnected(Bundle dataBundle) { // Display the connection status Toast.makeText(this, "Connected", Toast.LENGTH_SHORT).show(); } // Location Services calls the following if connection to the location client drops because of an error. @Override public void onDisconnected() { // Display the connection status Toast.makeText(this, "Disconnected. Please re-connect.", Toast.LENGTH_SHORT).show(); } // Location Services calls the following if the attempt to connect to Location Services fails @Override public void onConnectionFailed(ConnectionResult connectionResult) { /* * Google Play services can resolve some errors it detects. * If the error has a resolution, try sending an Intent to * start a Google Play services activity that can resolve * error. */ if (connectionResult.hasResolution()) { try { // Start an Activity that tries to resolve the error connectionResult.startResolutionForResult( this, CONNECTION_FAILURE_RESOLUTION_REQUEST); /* * Thrown if Google Play services canceled the original * PendingIntent */ } catch (IntentSender.SendIntentException e) { // Log the error e.printStackTrace(); } } else { /* * If no resolution is available, display a dialog to the * user with the error. */ showErrorDialog(connectionResult.getErrorCode()); } } // ************************************************************************************* // LOCATION CONNECTION METHODS // Set the current location to the last known location while a new location is being sought mCurrentLocation = mLocationClient.getLastLocation(); // ************************************************************************************* // ACTIVITY METHODS // Do the following when the activity is created @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Create a new location client, using the enclosing class to handle callbacks mLocationClient = new LocationClient(this, this, this); } // Do the following when the Activity becomes visible. @Override protected void onStart() { super.onStart(); // Connect the client. This is in 'onStart' not 'onCreate' as we want to connect whenever // the activity becomes visible, not just when the activity is started for the first time. mLocationClient.connect(); } // Do the following when the Activity is no longer visible. @Override protected void onStop() { // Disconnecting the client invalidates it. This saves battery - we don't want the location // to run in the background when the app/activity is not in use. mLocationClient.disconnect(); super.onStop(); } // Do the following when the menu is created @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } // Do the following when the Venue Search button is clicked public void sendVenueSearch (View view) { Intent intent = new Intent(this, Venue.class); EditText editText = (EditText) findViewById(R.id.venue_search); String message = editText.getText().toString(); intent.putExtra(VENUE_SEARCH, message); startActivity(intent); } } 

Actividad principal xml:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <EditText android:id="@+id/venue_search" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/button1" android:ems="10" android:hint="@+id/venue_search" > <requestFocus /> </EditText> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/venue_search" android:layout_alignParentRight="true" android:layout_marginBottom="34dp" android:layout_marginRight="31dp" android:onClick="sendVenueSearch" android:text="@string/button_venue_search" /> <ListView android:id="@+id/venueList" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignLeft="@+id/venue_search" android:layout_below="@+id/button1" > </ListView> </RelativeLayout> 

Tuve el mismo problema con la implementación de GooglePlayServicesClient.ConnectionCallbacks ya que no pudo resolver la importación, sino simplemente la eliminación de GooglePlayServicesClient. Prefijo y reorganización de las importaciones lo corrigió.

  1. Sólo el ratón sobre la función "GooglePlayServicesClient.ConnectionCallbacks"

  2. Sugiere que te guste "Importar GooglePlayServicesClient" como un enlace. Sólo haz clic en él.

  3. Su error se habrá ido ahora, si el problema es Si no se importó esa lib.

Este error está relacionado con la versión de la biblioteca de servicios de Google Play que está utilizando.

Tuve el mismo problema y actualizé la biblioteca del servicio de juego usando el gestor sdk y luego lo importé al espacio de trabajo.

Tenga en cuenta que mientras que el proyecto de construcción no se supone que la biblioteca de construir cada vez. Quite la marca en el archivo de la biblioteca antes de construir el proyecto.

Desde el manifiesto la versión que estoy usando es android: versionCode = "4323030" android: versionName = "4.3.23 (1069729-030)

Esta versión está funcionando bien donde todos los demás no.

  • Unity Error: Error al crear el reproductor
  • R.java no se genera y los archivos AIDL no se compilan en Android SDK 2.3
  • Cómo instalar Android 6.0.1 emulador en Android Studio?
  • Instalación del complemento de Android NDK en eclipse SDK
  • Error de ADT de Android, dx.jar no se cargó desde la carpeta SDK
  • Modifique AIRPLANE_MODE_ON en Android 4.2 (y superior)
  • AndroidManifest.xml implícita vs permisos explícitos (usos-característica vs usos-permisos)
  • Android Studio no encuentra com.android.support:support-v4:19.1.0
  • Android hace que los números de teléfono puedan hacer clic, autodetect
  • Función multiusuario de JellyBean en Emulator From Ubantu
  • ¿Cómo se establece la variable de entorno ANDROID_SDK_HOME?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.