从Android的LocationManager请求getLastKnownLocation时为空指针

Gab*_*one 5 android android-location

我在android 21及更高版本上出现以下错误。

我遇到以下错误,并且对该错误的制造商或型号没有限制。

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] android.content.pm.PackageManager.getPackagesForUid(int)' on a null object reference
    at android.os.Parcel.readException(Parcel.java:1605)
    at android.os.Parcel.readException(Parcel.java:1552)
    at android.location.ILocationManager$Stub$Proxy.getLastLocation(ILocationManager.java:717)
    at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1200)
    at [...]
Run Code Online (Sandbox Code Playgroud)

触发错误的调用是以下一种:

mLocationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
mLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Run Code Online (Sandbox Code Playgroud)

我事先检查mLocationManager是否不为null或我是否具有必要的权限。它适用于大多数情况,但确实有一些崩溃的情况。

有谁知道该怎么做才能避免发生这种情况,或者是否有任何方法可以检测到发生这种情况,所以我不要求该位置?

感谢您的关注,