嗨我正在玩一个Android地图应用教程,但我收到很多错误,因为我似乎没有正确导入com.google.andoid.maps包,因为eclipse给我一个错误的导入和任何一个类。它有什么理由不起作用。
import com.google.android.maps.*;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Window;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class ShowTheMap extends MapActivity {
private static double lat;
private static double lon;
private int latE6;
private int lonE6;
private MapController mapControl;
private GeoPoint gp;
private MapView mapView;
private Button overlayButton, accessButton;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // Suppress title bar for more space
setContentView(R.layout.showthemap);
// Add map controller with zoom controls
mapView = (MapView) findViewById(R.id.mv);
mapView.setSatellite(false);
mapView.setTraffic(false);
mapView.setBuiltInZoomControls(true); // Set android:clickable=true in main.xml
int maxZoom = mapView.getMaxZoomLevel();
int initZoom = maxZoom-2;
mapControl = mapView.getController();
mapControl.setZoom(initZoom);
// Convert lat/long in degrees into integers in microdegrees
latE6 = (int) (lat*1e6);
lonE6 = (int) (lon*1e6);
gp = new GeoPoint(latE6, lonE6);
mapControl.animateTo(gp);
// Button to control food overlay
overlayButton = (Button)findViewById(R.id.doOverlay);
overlayButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
}
});
// Button to control access overlay
accessButton = (Button)findViewById(R.id.doAccess);
accessButton.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
}
});
}
// Method to insert latitude and longitude in degrees
public static void putLatLong(double latitude, double longitude){
lat = latitude;
lon =longitude;
}
// This sets the s key on the phone to toggle between satellite and map view
// and the t key to toggle between traffic and no traffic view (traffic view
// relevant only in urban areas where it is reported).
public boolean onKeyDown(int keyCode, KeyEvent e){
if(keyCode == KeyEvent.KEYCODE_S){
mapView.setSatellite(!mapView.isSatellite());
return true;
} else if(keyCode == KeyEvent.KEYCODE_T){
mapView.setTraffic(!mapView.isTraffic());
mapControl.animateTo(gp); // To ensure change displays immediately
}
return(super.onKeyDown(keyCode, e));
}
// Required method since class extends MapActivity
@Override
protected boolean isRouteDisplayed() {
return false; // Don't display a route
}
}
答案 0 :(得分:1)
你应该将你的项目基于“Android 4.2”而不是平台4.2的“Google API”。
这可以在您的项目属性中更改 - Android - Project Build Target。
答案 1 :(得分:0)
这听起来好像是你错过了所需的包裹。确保使用 SDK Manager 在Eclipse中下载 Google API 。
请查看此页面了解详情。 https://developers.google.com/android/add-ons/google-apis/installing
该页面的快速片段提到了这类问题
选择要安装的Google API加载项,然后单击 安装选中。该加载项将下载到您的计算机上 安装在SDK环境中。
当您准备对附加组件进行开发时。设置你的 应用程序的属性,以便它使用Google API附加组件作为 建立目标。要运行该应用程序,请创建Android虚拟设备 使用附加组件作为目标。确保选择版本 (按API级别)适合您的应用。
让您的应用程序访问包含在中的地图库 加载项,您需要配置开发和运行时 环境正常。执行此操作的过程在中描述 地图概述文档,您应该阅读下一页。
例如
之后您将引用这些新包,因此您需要更改项目构建目标
例如