Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向双精度数组添加双精度值时出错_Java_Android_Nullpointerexception_Double_Locationmanager - Fatal编程技术网

Java 向双精度数组添加双精度值时出错

Java 向双精度数组添加双精度值时出错,java,android,nullpointerexception,double,locationmanager,Java,Android,Nullpointerexception,Double,Locationmanager,我试图将位置值添加到一个双数组中,但它给了我nullpointerexcetion。我请求像这样的位置更新 if (buttonView.isChecked()) { if (!manager .isProviderEnabled(LocationManager.GPS_PROVIDER)) { mylocation = mana

我试图将位置值添加到一个双数组中,但它给了我nullpointerexcetion。我请求像这样的位置更新

if (buttonView.isChecked()) {
                        if (!manager
                                .isProviderEnabled(LocationManager.GPS_PROVIDER)) {
                            mylocation = manager
                                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                            location_checked = true;
                        } else {
                            manager.requestLocationUpdates(
                                    LocationManager.GPS_PROVIDER, 5000, 0,
                                    listener);
                            location_checked = true;
                        }
                    }
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
                                       5000,0, listener);
然后我将传入的位置值设置为myLocation

LocationListener listener = new LocationListener() {

    @Override
    public void onLocationChanged(Location location) {
        mylocation = location;

    }

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

    }

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

    }

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

    }

};
之后,我尝试将这些值添加到一个双数组中,但这会导致错误,并在此时使我的应用程序崩溃

double[] locationData = new double[] {mylocation.getLatitude(),  
                                      mylocation.getLongitude() };

你应该这样做:

    @Override
  public void onLocationChanged(Location location) {
    double lat = location.getLatitude();
    double lng = location.getLongitude();
    setlocationData(lat, lng);
  }
因为在从LocationChanged设置位置之前,它是空的


LocationManager获得de GPS信号需要时间。

显然
mylocation
null
。你没有提供足够的信息让我们猜测为什么它没有被设置。你确定发生了
onLocationChanged
吗?可能侦听器在locationData实例化之前没有得到第一次更新?是否侦听器没有得到任何更新,我试图发送数据