2017-09-12 25 views
1

所以:反應本地世博項目與地理位置或地圖上的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" 
    } 

我對這個完全相同問題成立一個其他問題/評論,所以我決定提出自己的問題。

+1

你試過一個真實的設備嗎?不是模擬器? –

+0

我嘗試了2個真實設備和模擬器。在iOS上只有真正的設備。獨立版和每個設備/仿真器上的expo版本。沒有博覽會的舊版本在其中的每一個上工作 – Nipatiitti

回答

0

將一個空選項對象作爲第三個參數傳遞給Android上的watchPosition

https://github.com/facebook/react-native/issues/14580

+0

很久以前我解決了這個問題。可以證實這有助於。出現此錯誤的原因是watchPosition API在不同的RN版本之間發生了變化。接受你的答案是正確的 – Nipatiitti