反应原生 GeoLocation 空引用错误
Posted
技术标签:
【中文标题】反应原生 GeoLocation 空引用错误【英文标题】:react native GeoLocation null reference error 【发布时间】:2018-04-12 15:11:43 【问题描述】:我正在使用下面的代码来尝试获取我的当前位置:
componentDidMount()
this.watchID = navigator.geolocation.watchPosition((position) =>
let region =
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: 0.00922*1.5,
longitudeDelta: 0.00421*1.5,
enableHighAccuracy: true
this.onRegionChange(region, region.latitude, region.longitude);
);
我得到了:
Attempt to invoke interface method 'boolean abi26_0_0.com.facebook.react.bridge.ReadableMap.hasKey(java.lang.String)' on a null object reference
这行触发了什么:
this.watchID = navigator.geolocation.watchPosition((position) =>
我需要导入一些东西才能让它工作吗?我在网上找不到任何关于此的内容。
【问题讨论】:
您是否使用react-native init
创建了您的项目?如果是这样,你是do all the required configurations吗?
我使用 create-react-native-app 创建了项目。我不确定这如何使该特定行的语法不正确。
不知道你们还需要我什么来获得这方面的帮助。整个课程代码会有帮助吗?还有@Michael Cheng,我以前看过你链接的那个指南,但它列出了ios和android开发。我都没有使用。
【参考方案1】:
经过几个小时的搜索,我终于找到了它。
如果您像我一样使用 CRNA(create-react-native-app 是您构建应用程序的方式),您需要完成函数调用的所有部分。这些是(成功、错误、选项)。下面的代码是如何完成所有这些部分并消除此错误。
componentDidMount()
this.watchId = navigator.geolocation.watchPosition(
(position) =>
this.setState(
latitude: position.coords.latitude,
longitude: position.coords.longitude,
error: null,
);
,
(error) => this.setState( error: error.message ),
enableHighAccuracy: true, timeout: 20000, maximumAge: 1000, distanceFilter: 10 ,
);
【讨论】:
一年多后,这救了我!谢谢!!您应该将此答案标记为已解决。 哈,很高兴能帮上忙;)以上是关于反应原生 GeoLocation 空引用错误的主要内容,如果未能解决你的问题,请参考以下文章
在反应原生地图中使用 Geolocation.getCurrentPosition 时应用程序崩溃
反应原生 react-native-mauron85-background-geolocation:processReleaseResources FAILED
反应原生 navigator.geolocation.getCurrentPosition 问题
反应原生 - `Geolocation.getCurrentPosition` 返回“没有可用的位置提供程序”