0

我正在尝试我的第一个谷歌地图应用程序。我遵循了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);
}

我在做什么错误?

谢谢:)

4

5 回答 5

2

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

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

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

于 2013-06-25T06:21:17.497 回答
0

您需要使用 DDMS -> Emulator Control 为设备指定纬度和经度。对于地图 v1,要显示地图,我们需要使用检索 API 的密钥库对 apk 进行签名。

于 2013-06-25T06:38:02.227 回答
0

您需要使用 DDMS -> Emulator Control 为设备指定纬度和经度。

于 2013-06-25T06:29:38.143 回答
0

下载以下 APK

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

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

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

adb -e install [APK 文件路径]

于 2013-06-25T06:41:09.023 回答
0

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

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

B. 需要更新的版本(当前为 21) C. 如果运行 Windows,请确保安装最新的 Intel HAEM 并使用 Google API 启动 AVD D. 将示例项目导入 Android Studio。如果它遗漏了元数据,它会告诉你它的样子以及在哪里添加它。

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

于 2014-11-25T05:10:46.973 回答