I get error 13 in Place Auto complete Fragment

2019-08-19 13:50发布

问题:

I am trying to use PlaceAutocompleteFragment but whenever I click on the search bar it just closes it down and goes to onError and shows this as the failure message:

error : 13
error : Status{statusCode=ERROR, resolution=null}  

I am posting the whole Logcat:

 11-25 03:43:50.569 2321-2321/com.example.admin.nearbyplaces D/AppTracker: App Event: stop
11-25 03:43:50.687 2321-2321/com.example.admin.nearbyplaces I/zzbz: Making Creator dynamically
11-25 03:43:50.699 2321-2321/com.example.admin.nearbyplaces I/DynamiteModule: Considering local module com.google.android.gms.maps_dynamite:0 and remote module com.google.android.gms.maps_dynamite:221
    Selected remote version of com.google.android.gms.maps_dynamite, version >= 221
11-25 03:43:50.710 2321-2321/com.example.admin.nearbyplaces I/asset: Successfully loaded resource /system/framework/oxygen-framework-res.apk
11-25 03:43:50.731 2321-2321/com.example.admin.nearbyplaces W/System: ClassLoader referenced unknown path: /data/data/com.google.android.gms/app_chimera/m/00000048/n/armeabi-v7a
11-25 03:43:50.732 2321-2321/com.example.admin.nearbyplaces W/System: ClassLoader referenced unknown path: /data/data/com.google.android.gms/app_chimera/m/00000048/n/armeabi
11-25 03:43:50.736 2321-2321/com.example.admin.nearbyplaces I/asset: Successfully loaded resource /system/framework/oxygen-framework-res.apk
11-25 03:43:50.781 2321-2321/com.example.admin.nearbyplaces I/Google Maps Android API: Google Play services client version: 11400000
11-25 03:43:50.796 2321-2321/com.example.admin.nearbyplaces I/Google Maps Android API: Google Play services package version: 14574018
11-25 03:43:51.295 2321-2589/com.example.admin.nearbyplaces W/System: ClassLoader referenced unknown path: /system/framework/tcmclient.jar
11-25 03:43:51.355 2321-2321/com.example.admin.nearbyplaces D/AppTracker: App Event: start
11-25 03:43:51.362 2321-2321/com.example.admin.nearbyplaces I/Choreographer: Skipped 45 frames!  The application may be doing too much work on its main thread.
11-25 03:43:51.404 2321-2321/com.example.admin.nearbyplaces D/AbstractTracker: Event success
11-25 03:43:51.416 2321-2321/com.example.admin.nearbyplaces D/===SelectMapActivity: map ready
11-25 03:43:51.428 2321-2321/com.example.admin.nearbyplaces D/AbstractTracker: Event success
11-25 03:43:51.658 2321-2331/com.example.admin.nearbyplaces I/art: Background partial concurrent mark sweep GC freed 12870(1308KB) AllocSpace objects, 25(3MB) LOS objects, 40% free, 22MB/37MB, paused 7.348ms total 38.169ms
11-25 03:43:51.796 2321-2331/com.example.admin.nearbyplaces I/art: Background sticky concurrent mark sweep GC freed 2303(79KB) AllocSpace objects, 2(2MB) LOS objects, 4% free, 36MB/37MB, paused 9.847ms total 37.316ms
11-25 03:43:53.378 2321-2646/com.example.admin.nearbyplaces W/DynamiteModule: Local module descriptor class for com.google.android.gms.googlecertificates not found.
11-25 03:43:53.392 2321-2646/com.example.admin.nearbyplaces I/DynamiteModule: Considering local module com.google.android.gms.googlecertificates:0 and remote module com.google.android.gms.googlecertificates:4
    Selected remote version of com.google.android.gms.googlecertificates, version >= 4
11-25 03:43:53.402 2321-2646/com.example.admin.nearbyplaces W/System: ClassLoader referenced unknown path: /data/data/com.google.android.gms/app_chimera/m/00000047/n/armeabi-v7a
11-25 03:43:53.404 2321-2646/com.example.admin.nearbyplaces W/System: ClassLoader referenced unknown path: /data/data/com.google.android.gms/app_chimera/m/00000047/n/armeabi
11-25 03:43:53.409 2321-2646/com.example.admin.nearbyplaces I/asset: Successfully loaded resource /system/framework/oxygen-framework-res.apk

Here is the Activity:

    public class SelectMapActivity extends AppCompatActivity implements OnMapReadyCallback, View.OnClickListener{
    Context context;
//    Toolbar toolbar;
    @BindView(R.id.btn_searchMap)
    Button btnSearchMap;
    private PlaceAutocompleteFragment placeAutocompleteFragment;
    double latitude = 28.5535361 , longitude = 77.0986829;
    private MapView mapView;
    LatLng latLng = null;
    Marker mapMarker;
    GoogleMap map;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_select_location);
        ButterKnife.bind(this);
        context = this;

        MapsInitializer.initialize(SelectMapActivity.this);
        mapView = (MapView) findViewById(R.id.mapView_searchMap);
        mapView.onCreate(savedInstanceState);
        mapView.getMapAsync(this);

        placeAutocompleteFragment = (PlaceAutocompleteFragment) this.getFragmentManager().findFragmentById(R.id.place_autocomplete_fragment);

        AutocompleteFilter autocompleteFilter = new AutocompleteFilter.Builder().setTypeFilter(AutocompleteFilter.TYPE_FILTER_ADDRESS).build();

        placeAutocompleteFragment.setFilter(autocompleteFilter);

        placeAutocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() {
            @Override
            public void onPlaceSelected(Place place) {
                Toast.makeText(getApplicationContext(), place.getName().toString(), Toast.LENGTH_SHORT).show();
                Log.d("===autoCompleteGoogle", "place  : lat : " + place.getLatLng().latitude + " lon : " + place.getLatLng().longitude);
                latitude = place.getLatLng().latitude;
                longitude = place.getLatLng().longitude;

                btnSearchMap.setVisibility(View.VISIBLE);
                createMarker(latitude,longitude,place.getName().toString());
            }

            @Override
            public void onError(Status status) {

                Log.d("===autoCompleteGoogle", "error : " + status.getStatusMessage());
                Log.d("===autoCompleteGoogle", "error : " + status.getStatusCode());
                Log.d("===autoCompleteGoogle", "error : " + status.getStatus());
                Log.d("===autoCompleteGoogle", "error : " + status.getResolution());

            }
        });
    }

    private void createMarker(double latitude, double longitude, String name) {
        BitmapDescriptor icon = BitmapDescriptorFactory.defaultMarker();

        latLng = new LatLng(latitude,longitude);
        if(mapMarker!=null)
            mapMarker.remove();
        mapMarker =  map.addMarker(new MarkerOptions()
                .position(latLng)
                .anchor(0.5f, 0.5f)
                .title(name)
                .icon(icon));

        CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, 10);
        map.animateCamera(cameraUpdate);

    }

    public void onResume() {
        super.onResume();
        mapView.onResume();
    }

    ;

    public void onPause() {
        super.onPause();
        mapView.onPause();
    }

    ;

    public void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }

    ;

    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mapView.onSaveInstanceState(outState);
    }

    ;

    public void onLowMemory() {
        super.onLowMemory();
        mapView.onLowMemory();
    }

    GoogleMap.OnMarkerClickListener onMarkerClickListener = new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            String title = marker.getTitle();

            return false;
        }
    };

    GoogleMap.OnInfoWindowClickListener onInfoWindowClickListener = new GoogleMap.OnInfoWindowClickListener() {

        @Override
        public void onInfoWindowClick(Marker marker) {
            String title = marker.getTitle();
        }
    };
    @Override
    public void onMapReady(GoogleMap googleMap) {
        Log.d("===SelectMapActivity","map ready");
        map = googleMap;
        map.setOnMarkerClickListener(onMarkerClickListener);
        map.setOnInfoWindowClickListener(onInfoWindowClickListener);
        //set marker here
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn_searchMap:
                if(latitude!=0&&longitude!=0) {
                    Intent intent = new Intent(this, MainActivity.class);
                    intent.putExtra("latitude", latitude);
                    intent.putExtra("longitude", longitude);
                    startActivity(intent);
                    Toast.makeText(this, "clicked", Toast.LENGTH_SHORT).show();
                }

        }
    }
}