我正试图从头开始编写一个GPS追踪器,但它刚开始时就失败了。
由于某种原因,以下代码给出了IllegalArgumentException:无效的侦听器:null。
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.getProvider(LocationManager.GPS_PROVIDER);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);
mLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
Log.i(TAG,"There is some noticeable movement");
}
@Override
public void onProviderDisabled(String provider) {
// Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// Auto-generated method stub
}
}
任何线索?
答案 0 :(得分:0)
因为在这条线上
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);
mLocationListener
是null
。在requestLocationUpdates`之前初始化它。
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.getProvider(LocationManager.GPS_PROVIDER);
mLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
Log.i(TAG,"There is some noticeable movement");
}
@Override
public void onProviderDisabled(String provider) {
// Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// Auto-generated method stub
}
}
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);
答案 1 :(得分:0)
更改代码,
mLocationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
mLocationManager.getProvider(LocationManager.GPS_PROVIDER);
mLocationListener = new LocationListener() {
public void onLocationChanged(Location location) {
Log.i(TAG,"There is some noticeable movement");
}
@Override
public void onProviderDisabled(String provider) {
// Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// Auto-generated method stub
}
}
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1, mLocationListener);