Error: GooglePlayServicesUtil: Se ha producido un error interno. Consulte los registros para obtener información detallada. ¿Cómo puedo solucionar esto?

He pasado innumerables horas tratando de averiguar esta api de Google Drive android, y me he frustrado hasta el núcleo tratando de averiguar cómo exactamente para usarlo. Estoy utilizando el enlace de inicio en el sitio web de desarrolladores de google android, y esto es lo que he hecho:

package viva.inspection.com.inspectionpicker; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.IntentSender; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Spinner; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.drive.Drive; import com.google.android.gms.common.api.ResultCallback; import com.google.android.gms.drive.Drive; import com.google.android.gms.drive.DriveApi.ContentsResult; import com.google.android.gms.drive.DriveId; import com.google.android.gms.drive.MetadataChangeSet; import com.google.android.gms.drive.OpenFileActivityBuilder; import com.google.android.gms.common.api.ResultCallback; import com.google.android.gms.drive.Drive; import com.google.android.gms.drive.DriveApi.ContentsResult; import com.google.android.gms.drive.DriveId; import com.google.android.gms.drive.MetadataChangeSet; import com.google.android.gms.drive.OpenFileActivityBuilder; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.logging.Logger; import viva.inspection.com.inspectionpicker.MultiSpinner; public class MyActivity extends Activity implements MultiSpinner.MultiSpinnerListener, AdapterView.OnItemSelectedListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { GoogleApiClient mGoogleApiClient; final private static int RESOLVE_CONNECTION_REQUEST_CODE = 1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); Button save = (Button) findViewById(R.id.save); //array for the tasks multi-spinner String[] array = getResources().getStringArray(R.array.rooms_array); List<String> rooms = new ArrayList<String>(Arrays.asList(array)); // Create an ArrayAdapter using the string array and a default spinner layout final Spinner roomSpinner = (Spinner) findViewById(R.id.rooms); Spinner itemsSpinner = (Spinner) findViewById(R.id.inspectionItems); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.rooms_array, android.R.layout.simple_spinner_item); // Specify the layout to use when the list of choices appears adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Apply the adapter to the spinner roomSpinner.setAdapter( new NothingSelectedSpinnerAdapter( adapter, R.layout.contact_spinner_row_nothing_selected, // R.layout.contact_spinner_nothing_selected_dropdown, // Optional this)); roomSpinner.setOnItemSelectedListener(this); itemsSpinner.setOnItemSelectedListener(this); final MultiSpinner multiSpinner = (MultiSpinner) findViewById(R.id.multi_spinner); multiSpinner.setItems(rooms, "(Choose One)", this); mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(Drive.API) .addScope(Drive.SCOPE_FILE) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(MyActivity.this, ListActivity.class); intent.putExtra("NEW_VALUE", roomSpinner.getSelectedItem().toString()); startActivity(intent); } }); } ... @Override protected void onStart() { super.onStart(); mGoogleApiClient.connect(); } @Override public void onConnectionFailed(ConnectionResult connectionResult) { if (connectionResult.hasResolution()) { try { connectionResult.startResolutionForResult(this, RESOLVE_CONNECTION_REQUEST_CODE); } catch (IntentSender.SendIntentException e) { // Unable to resolve, message user appropriately } } else { GooglePlayServicesUtil.getErrorDialog(connectionResult.getErrorCode(), this, 0).show(); } } ... @Override public void onConnected(Bundle bundle) { Drive.DriveApi.newContents(mGoogleApiClient) .setResultCallback(contentsCallback); } @Override public void onConnectionSuspended(int i) { } @Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) { switch (requestCode) { case RESOLVE_CONNECTION_REQUEST_CODE: if (resultCode == RESULT_OK) { mGoogleApiClient.connect(); DriveId driveId = (DriveId) data.getParcelableExtra( OpenFileActivityBuilder.EXTRA_RESPONSE_DRIVE_ID); } break; } } ResultCallback<ContentsResult> contentsCallback = new ResultCallback<ContentsResult>() { @Override public void onResult(ContentsResult result) { if (!result.getStatus().isSuccess()) { // Handle error return; } MetadataChangeSet metadataChangeSet = new MetadataChangeSet.Builder() .setMimeType("text/html").build(); IntentSender intentSender = Drive.DriveApi .newCreateFileActivityBuilder() .setInitialMetadata(metadataChangeSet) .setInitialContents(result.getContents()) .build(mGoogleApiClient); try { startIntentSenderForResult(intentSender, 1, null, 0, 0, 0); } catch (IntentSender.SendIntentException e) { // Handle the exception } } }; } 

Este es mi manifiesto, y no tengo ni idea de cómo debería ser el manifiesto:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="viva.inspection.com.inspectionpicker"> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <activity android:name=".ListActivity" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MyActivity" android:label="MyActivity" android:exported="true"> <intent-filter> <action android:name="com.google.android.apps.drive.DRIVE_OPEN" /> <data android:mimeType="application/vnd.google-apps.drive-sdk.1234567890" /> <data android:mimeType="image/png" /> <data android:mimeType="image/jpeg" /> <data android:mimeType="image/jpg" /> </intent-filter> </activity> <activity android:name=".InitialChoose" android:label="@string/title_activity_initial_choose" android:windowSoftInputMode="stateHidden"> </activity> </application> </manifest> 

Cuando ejecuto la aplicación, aparece un cuadro de diálogo que indica "Problema desconocido con los servicios de Google Play" y, a continuación, en logcat, aparece esto:

 Error: GooglePlayServicesUtil﹕ Internal error occurred. Please see logs for detailed information. 

Pero no hay nada en los registros, así que otra vez estoy completamente confundido. He mirado otras preguntas, y de hecho he creado mi aplicación con la consola de desarrollo, según las instrucciones en el enlace de inicio que se encuentra arriba.

Realmente necesito ayuda.

Gracias por adelantado.

Resolví mi problema; Parece que no usé la huella SHA1 correcta, por lo que no pudo firmar y autorizar mi aplicación.

También asegúrese de llenar la información de "Pantalla de consentimiento", si ve errores internos relacionados con INVALID_CLIENT_ID .

Vea este tema relacionado: G + signin en android lanza INVALID_CLIENT_ID

En mi caso, una aplicación ejecutada correctamente, pero un día falló y apareció un cuadro de diálogo con un mensaje: "Problema desconocido con los servicios de Google Play". Después de reinstalar la aplicación el problema desapareció.

  • Carga reanudable con Drive API para Android
  • Cómo obtener el ID de archivo para poder realizar una descarga de un archivo de la API de Google Drive en Android
  • Nube de Android - Administrador de copia de seguridad vs unidad
  • Obtener todas las carpetas google drive api en Android
  • SDK de Google Drive para OCR
  • Google Drive en error android: java.lang.IllegalArgumentException: el nombre no debe estar vacío: null
  • UsingOAuth2 obsoleta?
  • Código de ejemplo de Google Play, Drive API en IntelliJ
  • Error de ConnectionRequire de la API de Google Drive para Android
  • La intención de Android de compartir datos de texto / datos sencillos en Google Drive
  • Android: solicitud HTTP de Google Drive
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.