导入com.google.android.maps时出错

时间:2013-02-18 15:06:41

标签: android

嗨我正在玩一个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
    }
}

2 个答案:

答案 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级别)适合您的应用。

     

让您的应用程序访问包含在中的地图库   加载项,您需要配置开发和运行时   环境正常。执行此操作的过程在中描述   地图概述文档,您应该阅读下一页。

  1. 在Eclipse中打开 SDK Manager
  2. 查找您的API版本
  3. 选中 Google API by Google Inc
  4. 点击安装#包
  5. 重启Eclipse
  6. 例如

    enter image description here

    之后您将引用这些新包,因此您需要更改项目构建目标

    1. 右键单击您的项目
    2. 打开属性
    3. 转到 Android 部分
    4. 选中 Google API 旁边的框,了解您正在寻找的API版本
    5. 例如

      enter image description here