4

Android用のGoogleマップv2用のGoogle APIキーを作成しました。すべてがGoogleマップ用のEclipseでセットアップされています(Google + APIビルドを使用し、Google Playサービスへのリンク、APIキーのソートなど)、マップアプリを正常に表示できます私の電話ですが、AVD で同じアプリを表示すると、正しい場所に移動し、すべての Google マップ オーバーレイ (ズーム ボタンなど) を見ることができますが、マップはなく、単なる灰色のボックスです。ネットワーキングも問題ありません。

最新の 4.3 API 18 ビルドを使用しており、AVD はデフォルトの Nexus One です。これに先立って、私が見つけた恐ろしい「Googleプレイサービスの更新」メッセージを受け取りました.これは、マップv2が単に4.2で動作していないことが原因であったため、AVDのSDK 18でマップが正常に動作するはずであるという読書をアップグレードしました.

なぜそれが表示されないのですか?AVD を起動すると、opengl ソフトウェアを使用していると表示されることに気付きましたが、問題ないと思っていました。

さまざまなスタックオーバーフローの記事を読みましたが、それらはすべて不適切な構成を指しており、私の電話に送信しても問題なく動作し、エラーは発生しません。

ここで役立つ場合は、私が使用しているコードのスニペットをいくつか示します。

マニフェスト:

<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-library android:name="com.google.android.maps" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" 
        android:value="XXXXXXXXXXXXXXXXXXXX"/>

レイアウト スニペット:

<fragment
    android:id="@+id/worldmap"
    android:name="com.google.android.gms.maps.SupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

マップを初期化するコード:

private void initialiseMap() {
    if (googleMap == null) {
        googleMap = ((SupportMapFragment) getFragmentManager().findFragmentById(
                R.id.worldmap)).getMap();

        // check if map is created successfully or not
        if (googleMap == null) {
            Toast.makeText(activity.getApplicationContext(),
                    "Unable to create maps", Toast.LENGTH_SHORT)
                    .show();
        }
    }       
}

地図を表示するコード:

private void displayLocation(Location l, String text) {
    if(googleMap!=null) {
        googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
        LatLng ll=new LatLng(l.getLatitude(), l.getLongitude());
        CameraPosition cp=new CameraPosition.Builder()
            .target(ll)
            .zoom(18)
            .build();

        googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cp));
        Toast.makeText(activity, l.getLatitude()+":"+l.getLongitude(), Toast.LENGTH_LONG).show();

    }
}
4

3 に答える 3

0

私の経験では、灰色の地図を取得するだけで、ライセンス キーに問題があることを意味することがわかりました (そのため、Google はカラフルな地図タイルのサーバーアップを拒否しています)。灰色の地図をスクロールします)。

于 2013-10-16T17:53:19.270 に答える
0

AVD で Google マップを正常に実行するには

  1. API レベルが 3.0 を超える非 Google API エミュレーターを作成します
  2. オンライン apk ダウンローダーを使用して Google Play サービス apk を PC にダウンロードします(最新バージョンである必要があります)。
  3. Google Play srore apkをダウンロードします(最新バージョンである必要があります)。
  4. Androidエミュレーターでadb installコマンドを使用してこれらのapkをインストールします

これで、エミュレーターで Google マップ v2 をテストする準備がすべて整いました。エミュレーターでアプリケーションを実行する

于 2013-10-16T16:19:07.853 に答える