【问题标题】:GeoPoint cant get my current Location and throws a java.lang.NullPointerExceptionGeoPoint 无法获取我当前的位置并抛出 java.lang.NullPointerException
【发布时间】:2020-01-12 07:37:54
【问题描述】:

我正在尝试使用 Geopoint 访问设备位置,但不幸的是,在空对象引用上抛出了一个错误是 double android.location.Location.getLatitude()' 并且已经阅读了很多教程,但我仍然面临这个问题

这是我的代码

private void getLastKnownLocation() {

        if ( ActivityCompat.checkSelfPermission (this, Manifest.permission.ACCESS_FINE_LOCATION)
                != PackageManager.PERMISSION_GRANTED
                && ActivityCompat.checkSelfPermission (this, Manifest.permission.ACCESS_COARSE_LOCATION)
                != PackageManager.PERMISSION_GRANTED ) {
            return;
        }

        mFusedLocationClient.getLastLocation ().addOnCompleteListener (new OnCompleteListener<Location> () {
            @Override
            public void onComplete(@NonNull Task<Location> task) {

                if ( task.isSuccessful () ) {
                    Location location = task.getResult ();
                    GeoPoint geoPoint = new GeoPoint (location.getLatitude (),location.getLongitude ());
                    Log.d (TAG, "onComplete: latitude"+ geoPoint.getLatitude ());
                    Log.d (TAG, "onComplete: latitude"+ geoPoint.getLongitude ());

                }

            }
        });

    }

抛出的错误

  • 进程:com.aquaapp.gesfasta,PID:23200 java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“double android.location.Location.getLatitude()” 在 com.aquaapp.gesfasta.MuuzaMainActivity$1.onComplete(MuuzaMainActivity.java:107) 在 com.google.android.gms.tasks.zzj.run(未知来源:4) 在 android.os.Handler.handleCallback(Handler.java:873) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:193) 在 android.app.ActivityThread.main(ActivityThread.java:6803) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)*

【问题讨论】:

    标签: java android


    【解决方案1】:

    getLastLocation() 可以根据可用性为您提供null 值。在这种情况下,您需要拨打requestLocationUpdates 并收听任何新的位置更新。

    【讨论】:

    • 您可以参考这个article了解更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-18
    • 2014-05-31
    • 1970-01-01
    • 2015-07-31
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多