我正在尝试构建一个在地图视图中显示位置的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
有人知道这个警告意味着什么吗?
答案 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>