反应本地世博项目与地理位置或地图上的Android错误
所以:反应本地世博项目与地理位置或地图上的Android错误
我有React本地项目做世博会。它有几个意见,airbnb mapview和类似的东西。它以前是纯粹的反应本地项目(在创建反应本机应用程序之前做的甚至是一件事),我最近把它移到了博览会。几乎一切正常。对于iOS而言,向博览会的转变是完美的,一切都如预期那样运作。但是当我尝试在android手机上启动应用程序时,我得到了很奇怪的错误。
尝试上的空对象引用调用接口方法 '布尔abi20_0_0.com.facebook.react.bridge.ReadableMap.hasKey(java.lang.String中)'
我认为它有是与查找位置没有真正的MapView的实际过程,但我唯一改变的事情是:
import MapView from 'react-native-maps';
到 import { MapView } from 'expo';
这是用来查找位置的实际代码:
componentDidMount() {
navigator.geolocation.getCurrentPosition(
(position) => {
this.setState({
region: {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
latitudeDelta: LATITUDE_DELTA,
longitudeDelta: LONGITUDE_DELTA
},
lat : position.coords.latitude,
lon : position.coords.longitude,
cords : {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
}
});
},
(error) => alert(error.message),
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000}
);
this.watchID = navigator.geolocation.watchPosition(
(position) => {
this.setState({
cords : {
latitude: position.coords.latitude,
longitude: position.coords.longitude,
},
lat : position.coords.latitude,
lon : position.coords.longitude,
});
});
}
它仍然正常工作而没有世博会的旧Android版本和它的工作原理与世博会取得了新的iOS版本。 watchPosition fails with react native expo 他已经结束了相同的结论,我却只有很少的信息对他的问题没有答案:
的package.json depencies
"dependencies": {
"expo": "^20.0.0",
"firebase": "^4.3.0",
"react": "16.0.0-alpha.12",
"react-native": "https://github.com/expo/react-native/archive/sdk-20.0.0.tar.gz",
"react-navigation": "^1.0.0-beta.11"
}
我对这个完全相同问题成立一个其他问题/评论,所以我决定提出自己的问题。
将一个空选项对象作为第三个参数传递给Android上的watchPosition
。
很久以前我解决了这个问题。可以证实这有助于。出现此错误的原因是watchPosition API在不同的RN版本之间发生了变化。接受你的答案是正确的 – Nipatiitti
你试过一个真实的设备吗?不是模拟器? –
我尝试了2个真实设备和模拟器。在iOS上只有真正的设备。独立版和每个设备/仿真器上的expo版本。没有博览会的旧版本在其中的每一个上工作 – Nipatiitti