Just opened a billing account with google to use the places autocomplete api. Created key and enabled the API. Now using the code below is giving me errors when I start typing into AutoCompleteTextView
. The first error is
java.util.concurrent.ExecutionException: com.google.android.gms.common.api.ApiException: 13: ERROR
Here is the java code. The PlaceAutocompleteAdapter
code I got from google links to GitHub, so assuming I don't need to post that code but here is the link to that code in case its needed.
https://github.com/googlesamples/android-play-places/tree/master/PlaceCompleteAdapter.
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.AutoCompleteTextView;
import com.google.android.gms.location.places.GeoDataClient;
import com.google.android.gms.location.places.Places;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.LatLngBounds;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
PlaceAutocompleteAdapter mPlaceAutocompleteAdapter;
GeoDataClient mGeoDataClient = Places.getGeoDataClient(this, null);
LatLngBounds LAT_LNG_BOUNDS = new LatLngBounds(new LatLng(-40, -168), new LatLng(71, 136));
mPlaceAutocompleteAdapter = new PlaceAutocompleteAdapter(this, mGeoDataClient, LAT_LNG_BOUNDS, null);
AutoCompleteTextView autoCompleteTextView = (AutoCompleteTextView) findViewById(R.id.autoCompEditText);
autoCompleteTextView.setAdapter(mPlaceAutocompleteAdapter);
}
}
Here is the manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.me.testautocomplete">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<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">
<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>
And logcat output where the errors start
08-13 21:43:29.872 5015-5055/com.example.me.testautocomplete W/System.err: java.util.concurrent.ExecutionException: com.google.android.gms.common.api.ApiException: 13: ERROR
08-13 21:43:29.902 5015-5055/com.example.me.testautocomplete W/System.err: at com.google.android.gms.tasks.Tasks.zzb(Unknown Source)
at com.google.android.gms.tasks.Tasks.await(Unknown Source)
08-13 21:43:29.922 5015-5055/com.example.me.testautocomplete W/System.err: at com.example.me.testautocomplete.PlaceAutocompleteAdapter.getAutocomplete(PlaceAutocompleteAdapter.java:212)
at com.example.me.testautocomplete.PlaceAutocompleteAdapter.access$000(PlaceAutocompleteAdapter.java:53)
at com.example.me.testautocomplete.PlaceAutocompleteAdapter$1.performFiltering(PlaceAutocompleteAdapter.java:147)
at android.widget.Filter$RequestHandler.handleMessage(Filter.java:234)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)
08-13 21:43:29.932 5015-5055/com.example.me.testautocomplete W/System.err: Caused by: com.google.android.gms.common.api.ApiException: 13: ERROR
08-13 21:43:29.952 5015-5055/com.example.me.testautocomplete W/System.err: at com.google.android.gms.common.internal.zzb.zzx(Unknown Source)
at com.google.android.gms.common.internal.zzbj.zzy(Unknown Source)
at com.google.android.gms.common.internal.zzbk.zzp(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.zzap(Unknown Source)
at com.google.android.gms.location.places.internal.zzx.onTransact(Unknown Source)
at android.os.Binder.execTransact(Binder.java:404)
08-13 21:43:29.972 5015-5055/com.example.me.testautocomplete W/System.err: at dalvik.system.NativeStart.run(Native Method)
08-13 21:43:30.102 5015-5055/com.example.me.testautocomplete D/dalvikvm: GC_FOR_ALLOC freed 221K, 9% free 3627K/3944K, paused 11ms, total 13ms
08-13 21:43:30.252 5015-5055/com.example.me.testautocomplete E/PlaceAutocomplete: Error getting autocomplete prediction API call
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 com.example.me.testautocomplete.PlaceAutocompleteAdapter.getAutocomplete(PlaceAutocompleteAdapter.java:218)
at com.example.me.testautocomplete.PlaceAutocompleteAdapter.access$000(PlaceAutocompleteAdapter.java:53)
at com.example.me.testautocomplete.PlaceAutocompleteAdapter$1.performFiltering(PlaceAutocompleteAdapter.java:147)
at android.widget.Filter$RequestHandler.handleMessage(Filter.java:234)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: com.google.android.gms.common.api.ApiException: 13: ERROR
at com.google.android.gms.common.internal.zzb.zzx(Unknown Source)
at com.google.android.gms.common.internal.zzbj.zzy(Unknown Source)
at com.google.android.gms.common.internal.zzbk.zzp(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.zzap(Unknown Source)
at com.google.android.gms.location.places.internal.zzx.onTransact(Unknown Source)
at android.os.Binder.execTransact(Binder.java:404)
at dalvik.system.NativeStart.run(Native Method)
Thanks
Solved my issue. Looks like I was missing this in the AndroidManifest.xml
.
<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="YOUR_KEY" />
</application>
The key is to have it inside <application>
element.