世博会在 Android 上反应原生 MapView 的问题

Ale*_*sca 1 google-maps android-mapview react-native expo

在项目的博览会中使用 MapView 时遇到问题。在 expo 应用程序中,iOS 和 Android 上一切正常,但是当构建相同的应用程序并将其发布到 Android apk 时,无论是在 Play 商店还是在打开地图时注意,应用程序都会崩溃并重新加载。

我在用:

  • 世博会 37.0.0
  • 反应原生博览会 SDK 37.0.1
  • react-native-maps 0.27.1

这是代码:

import { PROVIDER_GOOGLE } from 'expo';
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>
Run Code Online (Sandbox Code Playgroud)

起初我认为标记数组或初始经纬度有问题,但删除部分代码我将 MapView 减少到这个:

<MapView
  ref={'map'}
  provider={PROVIDER_GOOGLE}
>
</MapView>
Run Code Online (Sandbox Code Playgroud)

仍然不能在 apk / live Android 上工作,但在 ios live 中工作得很好,显示一张空地图。但是在 ios 和 android 的 expo 应用程序中,无论有没有标记,一切都很好。

有人遇到过这个问题吗?谢谢!

Ale*_*sca 5

发现问题并解决了。来自谷歌云控制台的 api 密钥仅适用于网络。我也为 ios 和 android 做了它,问题解决了。:)

然而这很奇怪,因为在世博会开发中这个问题不存在......只在实时构建中。