0

マップビューに場所を表示するAndroidアプリケーションを構築しようとしています。これは私のコードです:

import android.os.Bundle;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;
import com.overblog.R;

public class EditMapSectionActivity extends MapActivity{

    private MapView _mapView;

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.edit_section_map_activity);

        _mapView = (MapView) findViewById(R.id.map_view);

    }

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }

}

レイアウト:

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/fragment_background_color" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingLeft="@dimen/scroll_view_padding_left"
        android:paddingRight="@dimen/scroll_view_padding_right"
        android:paddingTop="@dimen/scroll_view_padding_top" >

        <EditText
            android:id="@+id/edit_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/search_for_location" />

        <com.google.android.maps.MapView
            android:id="@+id/map_view"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="@dimen/section_padding_top"
            android:apiKey="0t8UnajIfX1hZH27u-DCH40YuglmW1-1U51_wQA"
            android:background="@drawable/default_image_background"
            android:clickable="true" />

        <CheckedTextView
            android:id="@+id/check_box"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:checkMark="?android:attr/listChoiceIndicatorMultiple"
            android:gravity="center_vertical"
            android:minHeight="?android:attr/listPreferredItemHeight"
            android:text="@string/section_cover_picture" >
        </CheckedTextView>
    </LinearLayout>

</ScrollView>

他のアプリケーションで使用したので、デバッグapiKeyを確信しています。また、manifest.xmlにインターネット権限を追加したことも確認しています。

アプリを実行すると、mapViewがマップをロードしません。

logcatを確認しましたが、次の警告が表示されました。

10-04 17:33:10.511: W/MapActivity(21034): Recycling dispatcher android_maps_conflict_avoidance.com.google.googlenav.datarequest.DataRequestDispatcher@40c5edd0

この警告の意味を誰かが知っていますか?

4

1 に答える 1

1

私の提案は、余分なものをすべて削除し、それが最も単純な状態で機能していることを確認してから、xmlに背景、マージンなどの宣言が必要な場合は、一度に1つずつ挿入してアプリケーションを実行することです。これにより、空白のマップと警告メッセージの原因を絞り込むことができます。

有効なAPIキーがあると仮定すると、次のコードが機能することがわかります。

xml側:

<com.google.android.maps.MapView
        android:id="@+id/map_view"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:apiKey="InsertYourAPIKeyHERE"
        android:clickable="true"
        android:state_enabled="true" />

Java側:

public class EditMapSectionActivity extends MapActivity {

    private MapView _mapView;

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

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

        _mapView = (MapView) findViewById(R.id.map_view);

    }
}

マニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package=""
    android:versionCode=""
    android:versionName="" >

    <!-- Network Permissions -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />

    <application
        android:alwaysRetainTaskState="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >

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

        <activity
            android:name=".EditMapSectionActivity"
            android:label="@string/app_name"
            android:noHistory="false" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
于 2012-10-04T16:37:39.880 に答える