搜索具有自动填充功能的地点后,地图活动会崩溃

时间:2015-11-20 21:22:38

标签: android google-maps-api-3 google-places-api

嗨我是新的android地图,我有一个地图活动,当我搜索自动完成的地址时添加标记,一切正常搜索地址(街道,州,国家),问题是当我按地方搜索时麦当劳或特定建筑物的自动完成工作正常,但当它应该添加标记时,活动崩溃。我已经有谷歌地图api密钥和谷歌放置服务器密钥

在下面添加标记代码

提前谢谢!

 Intent o = getIntent();
    String textOrigin = o.getStringExtra("TextBoxOrigin");


List<Address> addressListOrigin=null;



    if(textOrigin !=null)
    {
        Geocoder geocoderOrigin=new Geocoder(this);
        try {
            addressListOrigin=geocoderOrigin.getFromLocationName(textOrigin,1);


        }catch (IOException e){
            e.printStackTrace();
        }


        //Check if origin exist
        if(addressListOrigin != null && addressListOrigin.size() > 0) {

            Address addressOrigin = addressListOrigin.get(0);
            LatLng latLng = new LatLng(addressOrigin.getLatitude(), addressOrigin.getLongitude());
            mMap.addMarker(new MarkerOptions().position(latLng).title("your position").icon(BitmapDescriptorFactory.fromResource(R.mipmap.worker_pin2)));
            mMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
            CameraUpdate cameraUpdate1 = CameraUpdateFactory.newLatLngZoom(latLng, 12);
            mMap.animateCamera(cameraUpdate1);
        }else{
            noLocationFound();
        }

1 个答案:

答案 0 :(得分:0)

Geocoder的getFromLocationName()方法必须在与UI的单独线程上运行,请在此处查看答案:

Can GeoCoder getFromLocation method cause a NetworkOnMainThreadException to be thrown?