google gms common apiexception android google-maps-api-3 google-places-api

RuntimeExecutionException: com.google.android.gms.common.api.ApiException: 13: ERROR Places API



com google android gms common api apiexception 17 (7)

Agregue el siguiente código en el manifiesto

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />

Recibo la siguiente excepción al probar la API de Google Places para obtener lugares de probabilidad para el sitio actual en Android.

Process: me.nabeelkottol.linkedinplaces, PID: 2995 com.google.android.gms.tasks.RuntimeExecutionException: com.google.android.gms.common.api.ApiException: 13: ERROR at com.google.android.gms.tasks.zzn.getResult(Unknown Source) at me.nabeelkottol.linkedinplaces.MainActivity$1.onComplete(MainActivity.java:71) at com.google.android.gms.tasks.zzf.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: com.google.android.gms.common.api.ApiException: 13: ERROR at com.google.android.gms.common.internal.zzb.zzz(Unknown Source) at com.google.android.gms.common.internal.zzbk.zzaa(Unknown Source) at com.google.android.gms.common.internal.zzbl.zzs(Unknown Source) at com.google.android.gms.common.api.internal.zzs.zzc(Unknown Source) at com.google.android.gms.common.api.internal.zzs.setResult(Unknown Source) at com.google.android.gms.location.places.zzm.zzao(Unknown Source) at com.google.android.gms.location.places.internal.zzx.onTransact(Unknown Source) at android.os.Binder.execTransact(Binder.java:453)

este es mi codigo

try { Task<PlaceLikelihoodBufferResponse> placeResult = mPlaceDetectionClient.getCurrentPlace(null); placeResult.addOnCompleteListener(new OnCompleteListener<PlaceLikelihoodBufferResponse>() { @Override public void onComplete(@NonNull Task<PlaceLikelihoodBufferResponse> task) { PlaceLikelihoodBufferResponse likelyPlaces = task.getResult(); for (PlaceLikelihood placeLikelihood : likelyPlaces) { Log.i(TAG, String.format("Place ''%s'' has likelihood: %g", placeLikelihood.getPlace().getName(), placeLikelihood.getLikelihood())); } likelyPlaces.release(); } }); } catch (SecurityException e) { e.printStackTrace(); }

Aquí está la línea PlaceLikelihoodBufferResponse likelyPlaces = task.getResult(); Me está dando el error.

He creado una API key para la aplicación de Android al dar el nombre del paquete y la clave SHA-1 para la depuración desde la Google API console de Google API console . Y enabled Google Places API for android en la sección de libraries . Todavía está dando el mismo error. No sé qué está mal con la implementación. Por favor, ayúdame.

Hay un issue reportado en github sobre esto.

Esta es mi app/build.gradle

apply plugin: ''com.android.application'' android { compileSdkVersion 26 defaultConfig { applicationId "me.nabeelkottol.linkedinplaces" minSdkVersion 16 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro'' } } } dependencies { implementation fileTree(dir: ''libs'', include: [''*.jar'']) implementation ''com.android.support:appcompat-v7:26.1.0'' implementation ''com.android.support.constraint:constraint-layout:1.0.2'' compile ''com.google.android.gms:play-services-places:11.6.0'' testImplementation ''junit:junit:4.12'' androidTestImplementation ''com.android.support.test:runner:1.0.1'' androidTestImplementation ''com.android.support.test.espresso:espresso-core:3.0.1'' }

Este es mi AndroidManifest.xml .

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="me.nabeelkottol.linkedinplaces"> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <meta-data android:name="com.google.android.geo.API_KEY" android:value="My API Key here"/> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application> </manifest>


Asegúrese de haber agregado los siguientes metadatos en su archivo de manifiesto.

<application ... <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY" /> </application>

También puedes ver si hay restricciones de API en tu consola de Google API. Si ha habilitado alguna restricción de API en API_KEY, solo funcionará para la API en particular. Tienes que agregar Places SDK for Android bajo restricciones API.


DE ACUERDO. Espero que no hayas tenido que perder tanto tiempo como yo para descubrir esto. Pero para que la respuesta de @Umar Ata funcione, debe colocar las dos etiquetas de metadatos en su archivo de manifiesto. Así que debería irse así.

<application> ... <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <meta-data android:name="com.google.android.geo.API_KEY" android:value="PASTE_YOUR_API_KEY_HERE" /> ... </application>

E incluso después de que todo salió bien, me dio un error: PLACES_API_ACCESS_NOT_CONFIGURED 9003 que solucioné al habilitar Places SDK para Android en lugar de la API de Places y las cosas finalmente mejoraron.


Por favor intente seguir la esperanza para que funcione.

1) actualice su / sdk / extras / google / google_play_services e intente nuevamente.

2) Si usa proguard, por favor excluya las clases de google de ofuscación como esta en proguard-rules.pro:

-keep public class com.google.** {*;}

3) Las versiones de libs de play-services deberían ser iguales, por ejemplo:

compile ''com.google.android.gms:play-services-maps:11.6.0'' compile ''com.google.android.gms:play-services-gcm:11.6.0''

4) Acabo de tener este problema, pero lo resolví degradando la versión de Gradle así:

Versión antigua y problemática:

classpath ''com.android.tools.build:gradle:2.2.0-rc2''

Versión fija:

classpath ''com.android.tools.build:gradle:2.3.3''

y no se olvide de agregar la siguiente dependencia en el archivo de nivel de proyecto.

dependencies { classpath ''com.android.tools.build:gradle:2.3.3'' classpath ''com.google.gms:google-services:3.1.0'' }


Puedes ver una discusión here sobre este tema. Para mí, el problema ocurrió en el emulador pero estaba funcionando en un dispositivo físico.


También experimenté esta excepción cuando se desactivaron las configuraciones de ubicación. Antes de realizar la llamada a la API, asegúrese de haber activado los servicios de ubicación.


Tuve el mismo problema, pude resolverlo habilitando a Google coloca Api desde la consola de Google y agregando lugares api clave. Tan pronto como habilites la API de Lugares, automáticamente te pedirá que agregues la clave de API, solo sigue las instrucciones.

Luego agrega la clave API en tu archivo de manifiesto.

<application ... <meta-data android:name="com.google.android.geo.API_KEY" android:value="YOUR_API_KEY" /> </application>

Además, su emulador debe tener los últimos servicios de Google Play instalados. De lo contrario, utilice el dispositivo Android real para la prueba.