0

我正在尝试为 Android 2.3.3 设置一个基本的 Google 地图应用程序。我尝试在 Eclipse、NetBeans 和 IntelliJ IDEA 中进行开发只是为了命名。在失败太多次后,我回到了基本状态。请帮助我使用我的 API v1。

目前我的地图显示空白(模拟器和我的真实设备)。这是我的代码(顺便说一句,我尝试了所有可能的权限标签):

我正在使用默认调试密钥对应用程序进行签名,即使我在发行版中对其进行签名,我仍然会得到空白地图。

我只想看到一张真实的地图。(顺便说一句,我不确定这里的文本格式是否正确,所以简而言之,我只是从这里mapview v1 sample复制了代码 1-1 )

清单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.hellogooglemaps"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8"/>

    <application android:label="@string/app_name">
        <uses-library android:name="com.google.android.maps"/>
        <activity android:name="MyActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

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

活动布局

<com.google.android.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="BLA_BLA_BLA_GOT_A_KEY"
/>

活动

    package com.example.hellogooglemaps;

    import android.os.Bundle;
    import com.google.android.maps.MapActivity;
    import com.google.android.maps.MapView;

    public class MyActivity extends MapActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);
    }

    @Override
    protected boolean isRouteDisplayed() {
        return false;
    }
    }
4

2 回答 2

0

如果您将 MD5 用于 default.keystore。

然后转到Windows>显示视图>其他>仿真器控件并从仿真器控件发送单击发送按钮(十进制C坐标)

然后再次运行您的应用程序地图应该会出现一些默认的美国位置。

要在设备中获取 Map,您需要从应用程序密钥库而不是默认密钥库创建 MD5。

谢谢。

于 2013-03-08T07:14:48.030 回答
0

该代码对于 Google Map API V1 看起来不错。所以你的钥匙一定有问题。据我所知,如果它是新生成的密钥,那么 Google 不会为 Google Map API V1 提供密钥,因此它必须是 Google Map API V2 的密钥,这就是它不起作用的原因。

请尝试地图 V2,生成后使用正确的地图密钥,以及以下注意事项:

  1. 互联网许可。2. 在开发者控制台中开启适用于 Android V2 的 Google 地图。3. 在清单中使用适当的标签,例如以下:
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <meta-data
              android:name="com.google.android.gms.version"
              android:value="@integer/google_play_services_version" />
        <meta-data
              android:name="com.google.android.maps.v2.API_KEY"
              android:value="xxx"/>

        <activity android:name="MyActivity"
                  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-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    </application>
于 2016-01-08T07:58:57.043 回答