2017-09-12 1 views
1

그래서 :반응 지리적 위치 또는 안드로이드의 MapView와의 네이티브 엑스포 프로젝트 오류

나는 네이티브 프로젝트가 물마루 박람회를 만들었습니다. 그것에는 전망의 커플, airbnb mapView와 그런 것들이 있습니다. 그것은 이전에 순수한 네이티브 프로젝트 (만들기 - 반응 - 네이티브 - 응용 프로그램도 전에 만든) 반응했고 나는 최근에 박람회로 옮겼습니다. 거의 모든 것이 잘 작동합니다. 엑스포로의 변환은 iOS에서 완벽하게 훌륭했으며 모든 것이 예상대로 작동했습니다. 하지만 안드로이드 폰에서 앱을 실행하려고하면 정말 이상한 오류가납니다. I 그것이 있다고 생각

널 객체 참조를 '부울 abi20_0_0.com.facebook.react.bridge.ReadableMap.hasKey (java.lang.String의)를'인터페이스 메소드를 호출

시도 뭔가하지 정말지도보기를 위치를 찾는의 실제 과정을 수행하는,하지만 난이 변경 유일한 것은이었다

import MapView from 'react-native-maps'; import { MapView } from 'expo';

012,351,641 에

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, 
       }); 
     }); 
} 

그것은 여전히 ​​엑스포없이 이전 안드로이드 버전에 정상적으로 작동하고 엑스포로 만든 새로운 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" 
    } 

나는이 정확히 같은 문제에 다른 하나 개의 질문을 설립/comments 그래서 나는 내 자신의 질문을하기로 결심했다.

+1

실제 기기를 사용해 보셨습니까? 에뮬레이터가 아닌가요? –

+0

2 개의 실제 장치 및 에뮬레이터를 사용해 보았습니다. iOS에서만 실제 기기. 모든 장치/에뮬레이터에서 독립 실행 형 버전과 엑스포 버전. 엑스포가없는 구버전은 그 중 하나 하나에 모두 적용되었습니다 – Nipatiitti

답변

0

Android에서 watchPosition의 3 번째 인수로 빈 옵션 개체를 전달합니다.

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

+0

나는 이것을 오래 전에 고쳤습니다. 이것이 도움이되었는지 확인할 수 있습니다. watchPosition API가 다른 RN 버전간에 변경 되었기 때문에 오류가 발생했습니다. 대답을 올바른 것으로 받아들이십시오. – Nipatiitti

관련 문제