Android 模拟器未在屏幕上显示 Google 地图

Yas*_*ash 8 android google-maps android-emulator react-native react-native-maps

我一直在尝试遵循这个https://github.com/airbnb/react-native-maps教程,我尝试了他们所说的所有内容,但在我的 android studio 模拟器上出现了空白屏幕。

我的截图

我的代码:

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';

import MapView from 'react-native-maps';

export default class ReactNativeMaps extends Component {
  render() {
   const { region } = this.props;
   console.log(region);

   return (
     <View style ={styles.container}>
       <MapView
         style={styles.map}
         region={{
           latitude: 39.1329,
           longitude: 84.5150,
           latitudeDelta: 0.015,
           longitudeDelta: 0.0121,
         }}
       >
       </MapView>
     </View>
   );
 }
}

const styles = StyleSheet.create({
  container: {
    position: 'absolute',
    top: 0,
    left: 0,
    right: 0,
    bottom: 0,
    justifyContent: 'flex-end',
    alignItems: 'center',
  },
  map: {
    position: 'absolute',
    top: 0,
    left: 0,
    right: 0,
    bottom: 0,
  },
});

AppRegistry.registerComponent('ReactNativeMaps', () => ReactNativeMaps);
Run Code Online (Sandbox Code Playgroud)

AndroidManifest.xml 文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.reactnativemaps"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="22" />

    <application
      android:name=".MainApplication"
      android:allowBackup="true"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:theme="@style/AppTheme">
      <meta-data
     android:name="com.google.android.geo.API_KEY"
     android:value="AIzaSyC3injbScdjmMp7J5MM1GqBhSb-kulIF_8"/>
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

小智 6

我有类似的问题,花了很多时间才解决。通常在真实设备上一切正常,但无法在我的某些模拟器变体上显示谷歌地图。显然,程序代码没问题,所以问题是为什么?

到目前为止我所观察到的:

  1. 如果禁用硬件加速 - 一切都会恢复正常。

  2. 如果使用纯 android 映像,cpu-arm(未加速 x86,速度较慢),但也可以使用。

  3. 如果您使用的是 x86_64 操作系统 - 在我的情况下为 macOS 10.13.2,请使用 x86_64 版本的模拟器映像,而不是通用 x86 !!!这是我的主要错误,没有让它发挥作用!用 x86_64 变体替换我的模拟器图像,解决所有问题!


Ern*_*zyk 6

  • 去AVD
  • 选择您的设备
  • 进入设置
  • 模拟性能 -> 图形 - 设置为硬件 - GLES 2.0


Ram*_*usa 0

使用地图时出现黑屏通常有两个主要原因:

  • 当您使用错误的 Google Api 密钥时。(如果您导入 Web api 密钥,它应该可以工作,请尝试一下)。并确保您启用了地图服务。
  • Android模拟器主要是与地图和谷歌服务的配合太差。我从来没有让我的模拟器运行地图。所以尝试一下实际设备。