Javascript 在android上使用地理位置或MapView来应对本地expo项目错误
因此: 我在世博会上做了一个本地项目。它有两个视图,airbnb mapView和类似的东西。它以前是纯react-native项目(在创建react-native应用程序之前制作),最近我把它搬到了expo。几乎每件事都很顺利。对于iOS来说,向世博会的转型是完美的,在这方面,一切都按照预期进行。但当我尝试在android手机上启动应用程序时,我遇到了一个非常奇怪的错误 尝试在空对象引用上调用接口方法“boolean abi20_0_0.com.facebook.react.bridge.ReadableMap.hasKey(java.lang.String)” 我认为这与找到位置的实际过程有关,而不是地图视图,但我唯一改变的是:Javascript 在android上使用地理位置或MapView来应对本地expo项目错误,javascript,android,react-native,expo,Javascript,Android,React Native,Expo,因此: 我在世博会上做了一个本地项目。它有两个视图,airbnb mapView和类似的东西。它以前是纯react-native项目(在创建react-native应用程序之前制作),最近我把它搬到了expo。几乎每件事都很顺利。对于iOS来说,向世博会的转型是完美的,在这方面,一切都按照预期进行。但当我尝试在android手机上启动应用程序时,我遇到了一个非常奇怪的错误 尝试在空对象引用上调用接口方法“boolean abi20_0_0.com.facebook.react.bridge.R
从“react native maps”导入MapView代码>
到
从“expo”导入{MapView}代码>
这是用于查找位置的实际代码:
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,
});
});
}
它在没有expo的旧android版本上仍能正常工作,在用expo制作的新iOS版本上也能正常工作
package.json依赖性
"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
你试过真正的设备吗?不是emulator?我试过使用2个真实设备和emulator。仅在iOS上使用真实设备。每个设备/仿真器上都有独立版和expo版。没有expo的旧版本对每一个都有效,我很早以前就解决了这个问题。我可以证实这有帮助。出现错误是因为WatchPositionAPI在不同的RN版本之间发生了更改。接受你的正确答案