0

Android 2.3.3 用の基本的な Google マップ アプリケーションをセットアップしようとしています。名前を付けるだけで、Eclipse、NetBeans、IntelliJ IDEA で開発してみました。何度も失敗した後、私は基本に戻りました。API v1 について教えてください。

現在、マップは空白で表示されます (エミュレーターと実際のデバイス)。これは私のコードです(ちなみに、可能なすべての許可タグを試しました):

デフォルトのデバッグ キーを使用してアプリケーションに署名していますが、リリースで署名しても空白のマップが表示されます。

私が欲しいのは、実際の地図を見ることだけです。(ちなみに、ここのテキストの形式が正しいかどうかわからないので、簡単に言えば、コード 1-1 を here mapview v1 sampleからコピーしました)

マニフェスト

<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

このコードは、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 に答える
0

default.keystore に MD5 を使用している場合。

次に、Windows>show view>other>Emulator control に移動し、Emulator コントロールから送信ボタンをクリックして送信します (座標は 10 進数)。

次に、アプリケーションを再度実行すると、マップにデフォルトの米国の場所が表示されます。

デバイスでマップを取得するには、デフォルトのキーストアではなく、アプリケーション キーストアから MD5 を作成する必要があります。

ありがとう。

于 2013-03-08T07:14:48.030 に答える