1

Google マップ V2 を実装しようとしていますが、マップが空白で表示されます。マニフェストを編集し、xml レイアウトとアクティビティを作成しましたが、マップが空白で表示されます。

マニフェストに対して行ったことは次のとおりです。

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

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

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="com.biznismap.com.permission.MAPS_RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CALL_PHONE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <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="my_key" />

これが私のマップxmlレイアウトです:

<?xml version="1.0" encoding="utf-8"?>
<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:apiKey="my_key"
    android:clickable="true" />

これが私のMapActivityです:

public class ListingMap extends MapActivity {

    private HelloItemizedOverlay itemizedoverlay;
    private List<Overlay> mapOverlays;
    private String lat, lng;

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

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listing_map);
        MapView mapView = (MapView) findViewById(R.id.mapview);
        mapView.setBuiltInZoomControls(true);

        mapOverlays = mapView.getOverlays();
        Drawable drawable = this.getResources().getDrawable(
                R.drawable.ic_launcher);
        itemizedoverlay = new HelloItemizedOverlay(drawable);
        getExtras();
    }

    private void getExtras() {
        Bundle extras = getIntent().getExtras();
        lat = extras.getString("lat");
        lng = extras.getString("lng");
        Log.v("--", lat+" "+lng);
        float latitude=Float.valueOf(lat);
        float longitude=Float.valueOf(lng);
        GeoPoint point = new GeoPoint((int)(latitude * 1E6),(int)(longitude * 1E6));
        OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!",
                "I'm in Mexico City!");
        itemizedoverlay.addOverlay(overlayitem);
        mapOverlays.add(itemizedoverlay);
    }

}

すべてが順調に進んでいますが、何かを表示したいとき、マップは空白で、エミュレーターからこれを取得します:

06-02 17:09:26.921: E/MapActivity(1772): Couldn't get connection factory client

では、どこが間違っているのでしょうか。この問題を解決するにはどうすればよいでしょうか。

4

4 に答える 4

1

ここで 2 つの問題があります。v2では使用できない場合があります

<uses-library android:name="com.google.android.maps" />

、レイアウトが無効です。完全なレイアウト マップが必要な場合は、次のようにします。

<FrameLayout
... >

    <fragment
        ...
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        class="com.google.android.gms.maps.SupportMapFragment" />
</FrameLayout>

Java コードで FragmentActivity を使用し、次のことを行います。

    map = ((SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.your_id)).getMap();

このようにして、ハニカム以前のデバイスとの互換性が得られます。幸運を!

于 2013-06-03T13:00:40.037 に答える
0

インターネットに接続していないか (私の推測)、入力したキーが間違っています。これらの両方を再確認してください。

また、テストに使用しているエミュレーター (該当する場合) に Google API がインストールされていることを確認してください。

于 2013-06-03T12:51:03.630 に答える
0

MapViewAPI v2 では使用されなくなりました。代わりに次を使用します。

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

したがって、FragmentActivity代わりに使用MapActivityしてマップを膨らませます。

詳細については、 Loading Map using Google Map API V2を参照してください。

于 2013-06-03T13:01:07.687 に答える