Проблема с экспо реагирует на родной MapView на Android - PullRequest
0 голосов
/ 04 мая 2020

У меня проблема при использовании MapView в expo для проекта. В приложении expo все в порядке как на iOS, так и на Android, но при сборке и публикации одного и того же приложения на Android apk, независимо от того, находится ли в магазине Play или Note при открытии карты, приложение вылетает и перезагружается.

Я использую:

  • Экспо 37.0.0
  • Реакция-натив Экспо SDK 37.0.1
  • Реакт-натив-карты 0.27.1

Вот код:

import MapView, { Marker, Callout, CalloutSubview } from 'react-native-maps';

<MapView
  ref={'map'}
  onPress={() => this._mapPress()}
  provider={PROVIDER_GOOGLE}
  style={styles.mapView}
  initialRegion={{
      latitude: mapLat,
      longitude: mapLon,
      latitudeDelta: 0.0922,
      longitudeDelta: 0.0421
  }}
>
  {markers.map((marker, i) => (
      <Marker
          key={`marker-${i}`}
          coordinate={marker.latlng}
          stopPropagation={true}
          onPress={e => this._mapMarkerPress(marker)}
      >
          <Image
              resizeMode='cover'
              source={
                  JSON.stringify(this.state.selectedMarker) == JSON.stringify(marker)
                      ? ACTIVE_PIN
                      : INACTIVE_PIN
              }
              style={styles.mapMarker}
          />
      </Marker>
  ))}
</MapView>

Сначала я подумал, что есть проблема с массивом маркеров или с начальным значением long long, но при удалении частей кода я уменьшил MapView на это:

<MapView
  ref={'map'}
  provider={PROVIDER_GOOGLE}
>
</MapView>

И все еще не работает на apk / live Android, но в ios live работает просто отлично, показывая пустую карту. Но в приложении expo и ios, и android все нормально с маркерами или без.

У кого-нибудь была эта проблема? Спасибо!

1 Ответ

0 голосов
/ 11 мая 2020

Попробуйте добавить markerLat a markerLon параметры и замените это:

 initialRegion={{
      latitude: mapLat,
      longitude: mapLon,
      latitudeDelta: 0.0922,
      longitudeDelta: 0.0421
  }}

следующим:

 initialRegion={{
      latitude: mapLat,
      longitude: mapLon,
      latitudeDelta: 0.0922,
      longitudeDelta: 0.0421
  },
      markerLat: Number(48.736279),  
      markerLon: Number(19.146191)
}
...