谷歌地图不在模拟器上显示

时间:2013-06-25 06:16:51

标签: android

我正在尝试我的第一个谷歌地图应用程序。我按照vogella http://www.vogella.com/articles/AndroidGoogleMaps/article.html教程中的所有步骤进行了操作。

我创建了一个api密钥,并在清单文件中使用了相同的密钥。

声明清单文件中的所有权限。

当我在手机上运行时,应用程序运行正常,但是当我尝试在模拟器上运行时,我只得到带有缩放图标的空屏幕,并且在错误控制台中我得到

06-25 06:06:54.387: E/Google Maps Android API(7808): Google Maps Android API v2 only supports devices with OpenGL ES 2.0 and above

我正在尝试使用google api 4.2.2在模拟器上运行。

清单文件

 <permission
        android:name="com.sample.maps.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="false" />

    <uses-permission android:name="com.sample.maps.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />  



    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="com.sample.maps.Presentlocation"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <uses-library android:name="com.google.android.maps" />
         <meta-data
            android:name="com.google.android.maps.v2.API_KEY" 
            android:value="AIzaSyD0Ku3-ysyNupHy59CtfvX6Cfmz_ob0pkk"/> 
    </application>

XML文件

<fragment

          android:id="@+id/map" 
          android:layout_width="match_parent"
          android:layout_height="match_parent" 
          android:name="com.google.android.gms.maps.MapFragment"

         />

Java文件

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.presentlocation);
}

我正在做的错误是什么?

感谢:)

5 个答案:

答案 0 :(得分:2)

Android的默认ARM模拟器没有Google地图所需的OpenGL ES 2.0支持。您需要获得x86模拟器。他们支持此功能,谷歌地图应该可以正常运行。

如何设置x86模拟器: https://stackoverflow.com/a/13856866/1369222

关于硬件加速的官方文档:https://developer.android.com/tools/devices/emulator.html#acceleration

答案 1 :(得分:0)

您需要使用DDMS为设备提供经度和纬度 - &gt;仿真器控制。

答案 2 :(得分:0)

您需要使用DDMS为设备提供经度和纬度 - &gt;仿真器控制。对于地图v1,要显示地图,我们需要使用用于检索API的密钥库对apk进行签名。

答案 3 :(得分:0)

  

下载以下APK

[com.android.vending-1.apk][1]

[com.google.android.gms-1.apk][2]
  

使用ADB将这两个APK安装到运行(目标)模拟器中   命令:

     

adb -e install [path-to-APK-file]

答案 4 :(得分:0)

自2013年6月以来,情况发生了很大变化。我们不需要在模拟器上安装apks。 .. \ Android \ android-studio \ sdk \ extras \ google \ google_play_services \ samples \ maps中的示例有效(下面有一些小调整)并提供了很多人可能想要做的事情的示例。

弱者: A.在清单中,所需的密钥是浏览器密钥,而不是应用密钥:     

B中。版本需要更新(目前为21) C.如果运行Windows,请确保安装最新的Intel HAEM并使用Google API启动AVD D.将示例项目导入Android Studio。如果它错过了元数据,它会告诉你它的外观和添加位置。

构建,运行,享受十几个样本。瞧!