Android 谷歌没有';我不显示我的位置

Android 谷歌没有';我不显示我的位置,android,google-maps,maps,geocoding,reverse-geocoding,Android,Google Maps,Maps,Geocoding,Reverse Geocoding,我想在地图上找到一个位置正确的记号笔。在来自标记的信息中,应该是地址。我想我确实弄错了什么或者忘记了什么,因为我的代码地图没有显示我的位置。。你能帮我吗 @SuppressLint("NewApi") public class MainActivity extends FragmentActivity implements LocationListener { GoogleMap map; MarkerOptions mp; public Address locati

我想在地图上找到一个位置正确的记号笔。在来自标记的信息中,应该是地址。我想我确实弄错了什么或者忘记了什么,因为我的代码地图没有显示我的位置。。你能帮我吗

@SuppressLint("NewApi")
public class MainActivity extends FragmentActivity implements LocationListener {
     GoogleMap map;
     MarkerOptions mp;
    public Address location;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);

        map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
         .getMap();

       }


     private class ReverseGeocodingTask extends AsyncTask<LatLng, Void, String>{
            Context mContext;

            public ReverseGeocodingTask(Context context){
                super();
                mContext = context;
            }

            // Finding address using reverse geocoding
            @Override
            protected String doInBackground(LatLng... params) {
                Geocoder geocoder = new Geocoder(mContext);
                double latitude = params[0].latitude;
                double longitude = params[0].longitude;

                List<Address> addresses = null;
                String addressText="";

                try {
                    addresses = geocoder.getFromLocation(latitude, longitude,1);
                } catch (IOException e) {
                    e.printStackTrace();
                }

                if(addresses != null && addresses.size() > 0 ){
                    Address address = addresses.get(0);

                    addressText = String.format("%s, %s, %s",
                    address.getMaxAddressLineIndex() > 0 ? address.getAddressLine(0) : "",
                    address.getLocality(),
                    address.getCountryName());
                }

                return addressText;

            }


    @Override
      public void onPostExecute(String addressText) {

        map.clear();


        mp.title(addressText);


        mp.position(new LatLng(location.getLatitude(), location.getLongitude()));

        map.addMarker(mp);


        map.animateCamera(CameraUpdateFactory.newLatLngZoom(
         new LatLng(location.getLatitude(), location.getLongitude()), 16));

       }



    }

    @Override
    public void onLocationChanged(Location location) {
           double lat = location.getLatitude();
           double lon = location.getLongitude();
           LatLng point = new LatLng(lat, lon);
           new ReverseGeocodingTask().execute(point);

        }

    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderEnabled(String provider) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onProviderDisabled(String provider) {
        // TODO Auto-generated method stub

    }}
@SuppressLint(“NewApi”)
公共类MainActivity扩展FragmentActivity实现LocationListener{
谷歌地图;
标记选项mp;
公共广播地点;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LocationManager lm=(LocationManager)getSystemService(Context.LOCATION\u服务);
lm.RequestLocationUpdate(LocationManager.NETWORK_提供程序,0,0,this);
map=((MapFragment)getFragmentManager().findFragmentById(R.id.map))
.getMap();
}
私有类ReverseGeocodingTask扩展了AsyncTask{
语境;
公共反向分类任务(上下文){
超级();
mContext=上下文;
}
//使用反向地理编码查找地址
@凌驾
受保护管柱后台(LatLng…参数){
Geocoder Geocoder=新的Geocoder(mContext);
双纬度=参数[0]。纬度;
双经度=参数[0]。经度;
列表地址=空;
字符串addressText=“”;
试一试{
地址=地理编码器.getFromLocation(纬度,经度,1);
}捕获(IOE异常){
e、 printStackTrace();
}
if(addresses!=null&&addresses.size()>0){
地址=地址。获取(0);
addressText=String.format(“%s,%s,%s”,
address.getMaxAddressLineIndex()>0?address.getAddressLine(0):“”,
address.getLocation(),
address.getCountryName());
}
返回地址文本;
}
@凌驾
public void onPostExecute(字符串地址文本){
map.clear();
议员职务(地址文本);
mp.位置(新车床(location.getLatitude(),location.getLongitude());
map.addMarker(mp);
map.animateCamera(CameraUpdateFactory.newLatLngZoom(
新LatLng(location.getLatitude(),location.getLongitude()),16);
}
}
@凌驾
已更改位置上的公共无效(位置){
双纬度=location.getLatitude();
double lon=location.getLongitude();
LatLng点=新LatLng(lat,lon);
新建ReverseGeocodingTask()。执行(点);
}
}
@凌驾
public void onStatusChanged(字符串提供程序、int状态、Bundle extra){
//TODO自动生成的方法存根
}
@凌驾
公共无效onProviderEnabled(字符串提供程序){
//TODO自动生成的方法存根
}
@凌驾
公共无效onProviderDisabled(字符串提供程序){
//TODO自动生成的方法存根
}}
这是新的航海日志

 08-08 11:51:19.521: E/dalvikvm(23602): Could not find class 'gpq', referenced from method gpr.a
    08-08 11:51:19.521: E/dalvikvm(23602): Could not find class 'gpq', referenced from method gpr.a
    08-08 11:51:19.521: E/dalvikvm(23602): Could not find class 'gpq', referenced from method gpr.a
    08-08 11:51:19.671: E/dalvikvm(23602): Could not find class 'com.google.android.gms.location.internal.ParcelableGeofence', referenced from method gls.a
    08-08 11:51:24.886: E/AndroidRuntime(23602): FATAL EXCEPTION: AsyncTask #1
    08-08 11:51:24.886: E/AndroidRuntime(23602): Process: ch.swisscom.manuel, PID: 23602
    08-08 11:51:24.886: E/AndroidRuntime(23602): java.lang.RuntimeException: An error occured while executing doInBackground()
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at java.lang.Thread.run(Thread.java:841)
    08-08 11:51:24.886: E/AndroidRuntime(23602): Caused by: java.lang.NullPointerException
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at android.location.GeocoderParams.<init>(GeocoderParams.java:50)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at android.location.Geocoder.<init>(Geocoder.java:83)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at android.location.Geocoder.<init>(Geocoder.java:95)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at ch.swisscom.manuel.MainActivity$ReverseGeocodingTask.doInBackground(MainActivity.java:55)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at ch.swisscom.manuel.MainActivity$ReverseGeocodingTask.doInBackground(MainActivity.java:1)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    08-08 11:51:24.886: E/AndroidRuntime(23602):    ... 4 more
08-08 11:51:19.521:E/dalvikvm(23602):找不到从方法gpr.a引用的类“gpq”
08-08 11:51:19.521:E/dalvikvm(23602):找不到从方法gpr.a引用的类“gpq”
08-08 11:51:19.521:E/dalvikvm(23602):找不到从方法gpr.a引用的类“gpq”
08-08 11:51:19.671:E/dalvikvm(23602):找不到从方法gls.a引用的类“com.google.android.gms.location.internal.ParcelableGeofence”
08-08 11:51:24.886:E/AndroidRuntime(23602):致命异常:AsyncTask#1
08-08 11:51:24.886:E/AndroidRuntime(23602):进程:ch.swisscom.manuel,PID:23602
08-08 11:51:24.886:E/AndroidRuntime(23602):java.lang.RuntimeException:执行doInBackground()时出错
08-08 11:51:24.886:E/AndroidRuntime(23602):在android.os.AsyncTask$3.done(AsyncTask.java:300)
08-08 11:51:24.886:E/AndroidRuntime(23602):在java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
08-08 11:51:24.886:E/AndroidRuntime(23602):位于java.util.concurrent.FutureTask.setException(FutureTask.java:222)
08-08 11:51:24.886:E/AndroidRuntime(23602):在java.util.concurrent.FutureTask.run(FutureTask.java:242)
08-08 11:51:24.886:E/AndroidRuntime(23602):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
08-08 11:51:24.886:E/AndroidRuntime(23602):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
08-08 11:51:24.886:E/AndroidRuntime(23602):在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
08-08 11:51:24.886:E/AndroidRuntime(23602):在java.lang.Thread.run(Thread.java:841)处
08-08 11:51:24.886:E/AndroidRuntime(23602):由以下原因引起:java.lang.NullPointerException
08-08 11:51:24.886:E/AndroidRuntime(23602):在android.location.GeocoderParams(GeocoderParams.java:50)
08-08 11:51:24.886:E/AndroidRuntime(23602):在android.location.Geocoder。(Geocoder.java:83)
08-08 11:51:24.886:E/AndroidRuntime(23602):在android.location.Geocoder.(Geocoder.java:95)
08-08 11:51:24.886:E/AndroidRuntime(23602):在ch.swisscom.manuel.MainActivity$ReverseGeocodingTask.doInBackground(MainActivity.java:55)
08-08 11:51:24.886:E/AndroidRuntime(23602):在ch.swisscom.manuel.MainActivity$ReverseGeocodingTask.doInBackground(MainActivity.java:1)
08-08 11:51:24.886:E/AndroidRuntime(23602):在android.os.AsyncTask$2.call(AsyncTask.java:288)
08-08 11:51:24.886:E/AndroidRuntime(23602):在java.util.concurrent.FutureTask.run(FutureTask.java:237)
2008-08 11:51:24.886:E/AndroidRuntime(23602):。。。4更多

我没有看到对ReverseGeocodingTask类的函数调用

叫它
 @Override
    public void onLocationChanged(Location location) {
        // TODO Auto-generated method stub
            double lat = location.getLatitude();
            double lon = location.getLongitude();
            LatLng point = new LatLng(lat, lon);
            new ReverseGeocodingTask().execute(point);

    }
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);


    map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map))
            .getMap();
}

private class ReverseGeocodingTask extends AsyncTask<LatLng, Void, String> {

    @Override
    protected String doInBackground(LatLng... params) {
        Geocoder geocoder = new Geocoder(getBaseContext());
        double latitude = params[0].latitude;
        double longitude = params[0].longitude;

        List<Address> addresses = null;

        try {
            addresses = geocoder.getFromLocation(latitude, longitude, 1);
        } catch (IOException e) {
            e.printStackTrace();
        }
        String addressText = null;
        if (addresses != null && addresses.size() > 0) {
            Address address = addresses.get(0);

             addressText= String.format(
                    "%s, %s, %s",
                    address.getMaxAddressLineIndex() > 0 ? address
                            .getAddressLine(0) : "", address.getLocality(),
                    address.getCountryName());
        }

        final MarkerOptions mp = new MarkerOptions();

        final LatLng userLocation = new LatLng(latitude, longitude);

        mp.position(userLocation);
        mp.title(addressText);
        runOnUiThread(new Runnable() {
            public void run() {
                Marker marker = map.addMarker(mp);
                map.animateCamera(CameraUpdateFactory.newLatLngZoom(userLocation,
                        16));       
                marker.showInfoWindow();
            }
        });

        return addressText;
    }

}

@Override
public void onLocationChanged(Location location) {

    LatLng userLocation = new LatLng(location.getLatitude(),
            location.getLongitude());
    ReverseGeocodingTask rgt = new ReverseGeocodingTask();

    rgt.execute(userLocation);

}