error尝试调用虚拟方法'android.location.location

error Attempt to invoke virtual method 'android.location.Location

本文关键字:location android 方法 调用 虚拟 error      更新时间:2023-09-26

我正在使用MobileFirst提供的WL.device.Geo.acquisitePosition(onGeoLocationSuccess,onGeoLocation Failure,options)检索设备的位置。

第一次很好。我找到了位置,一切都很好。

但是,在应用程序中的某个时刻,我清除了localStorage。当我这样做的时候,应用程序会变得疯狂,我在控制台上不断收到这个错误:

getPosition - error Attempt to invoke virtual method 'android.location.Location com.worklight.androidgap.plugin.WLGPSListener.getLastKnownLocation()' on a null object reference

我的代码是这样的:

position();
function position() {
  var options = {
    enableHighAccuracy : false,
    timeout            : 20000,
    maximumAge         : 30000,
    highAccuracyOptions: {
      desiredAccuracy: 50, //meters
      iOSBestAccuracy: WL.Device.Geo.IOS_BEST_ACCURACY
    }
  };
  WL.Device.Geo.acquirePosition(onGeoLocationSuccess, onGeoLocationFailure, options);
}
function onGeoLocationSuccess(position) {
  WL.Logger.info('Got position now ;)');
}
function onGeoLocationFailure(errorObj) {
  console.log('Trying again ');
  position();
}

这就是我在另一个服务中重置本地存储的方式

localStorage.clear();

有什么建议吗?

检查localStorage的内容;由于您是在强制清除整个存储,我怀疑您是在应用程序运行时清除所需的数据。

只清除需要清除的内容,而不是全部清除。