尝试填充mapView时发出警告

时间:2012-10-04 15:31:31

标签: android google-maps android-mapview

我正在尝试构建一个在地图视图中显示位置的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中添加了Internet权限

当我运行我的应用程序时,我的mapView不会加载地图。

我检查了我的logcat,我收到了这个警告:

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

有人知道这个警告意味着什么吗?

1 个答案:

答案 0 :(得分:1)

我的建议是删除你拥有的所有内容,验证它是否处于最简单的状态,然后如果你需要xml中的后台,边距等声明,那么一次插入一个并运行你的应用程序。这将允许您缩小空白地图和警告消息的罪魁祸首。

假设您有一个有效的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>