2012-08-02 38 views
4

我想要导入这些包 import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; 我mainactivity.java包com.google.android.maps解决不了

但是Eclipse不能解决这些包,我不知道这样做的原因。

我按照电子书上的说明逐步了解了如何在应用中导入地图,并且没有提及此错误。

这里是我的文件:

/////////// MainActivity.java /////////////////////

package com.paad.whereami; 

import java.io.IOException; 
import java.util.List; 
import java.util.Locale; 

import com.google.android.maps.MapActivity; 
import com.google.android.maps.MapController; 
import com.google.android.maps.MapView; 

import android.app.Activity; 
import android.content.Context; 
import android.location.Address; 
import android.location.Criteria; 
import android.location.Geocoder; 
import android.location.Location; 
import android.location.LocationListener; 
import android.location.LocationManager; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 

public class MainActivity extends MapActivity { 

//static final private int MENU_REFRESH = Menu.FIRST; 

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

private LocationManager locationManager; 
private String provider; 
private Location location; 

private final LocationListener locationListener = new LocationListener() { 
    public void onLocationChanged(Location location) { 
     updateWithNewLocation(location); 
    } 
    public void onProviderDisabled(String provider){ 
     updateWithNewLocation(null); 
    } 
    public void onProviderEnabled(String provider){ } 
    public void onStatusChanged(String provider, int status, Bundle extras){ } 
}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.map_layout); 
     mapView = (MapView)findViewById(R.id.map_view); 

     locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 

     Criteria criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     criteria.setAltitudeRequired(false); 
     criteria.setBearingRequired(false); 
     criteria.setCostAllowed(true); 
     criteria.setPowerRequirement(Criteria.POWER_LOW); 
     provider = locationManager.getBestProvider(criteria, true); 
     location = locationManager.getLastKnownLocation(provider); 

    //Log.v("BEFORE", "Location is: " + location); 
    updateWithNewLocation(location); 
    //Log.v("AFTER", "LOCATION FOUND"); 
    locationManager.requestLocationUpdates(provider, 2000, 10, locationListener); 
    } 

    private void updateWithNewLocation(Location location){ 
     String latLongString; 
     TextView myLocationText; 
     myLocationText = (TextView)findViewById(R.id.myLocationText); 

     String addressString = "No address found"; 

     if (location != null) { 
     double lat = location.getLatitude(); 
     double lng = location.getLongitude(); 
     latLongString = "Lat:" + lat + "\nLong:" + lng; 

     //double latitude = 73.147536; 
     //double longitude = 0.510638; 
     Geocoder gc = new Geocoder(this, Locale.getDefault()); 

     try { 
      List<Address> addresses = gc.getFromLocation(lat, lng, 1); 
      Log.v("TRY_BODY", "All addresses are: " + addresses); 
      StringBuilder sb = new StringBuilder(); 
      if (addresses.size() > 0) { 
       Log.v("IF_BODY", "All addresses are: " + addresses); 
       Address address = addresses.get(0); 
       for (int i = 0; i < address.getMaxAddressLineIndex(); i++){ 
        sb.append(address.getAddressLine(i)).append("\n"); 
        sb.append(address.getLocality()).append("\n"); 
        sb.append(address.getPostalCode()).append("\n"); 
        sb.append(address.getCountryName()); 
       } 
       addressString = sb.toString(); 
      } 
     } catch (IOException e) {} 
     } 
     else { 
     latLongString = "No location found"; 
     } 

     myLocationText.setText("Current Pos:\n"+latLongString+"\n"+addressString); 
    } 

} 

//////////// main.xml中/////////////////

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView 
    android:id="@+id/myLocationText" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello" 
    /> 

    <com.google.android.maps.MapView 
android:id="@+id/myMapView" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:enabled="true" 
android:clickable="true" 
android:apiKey="@string/myMapKey" 
/> 

</LinearLayout> 

/////// /////// Manifest.xml ////////////////

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.paad.whereami" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="4" 
     android:targetSdkVersion="15" /> 

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 

     <application 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" > 

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

      <activity 
       android:name=".MainActivity" 
       android:label="@string/title_activity_main" > 
       <intent-filter> 
        <action android:name="android.intent.action.MAIN" /> 

        <category android:name="android.intent.category.LAUNCHER" /> 
       </intent-filter> 
      </activity> 
     </application> 

</manifest> 

在此先感谢。

回答

28

右键单击您的项目--->属性---> android->选择目标名称Google ApIs。并清理项目并构建项目。

+0

非常感谢老兄!这让我疯狂!无论我在互联网上发现什么都没有提到它!你能不能发布相关文件?再次感谢 ! – 2012-08-02 12:33:21

+1

https://developers.google.com/maps/documentation/android/在此链接中,请参阅“设置地图项目”主题。 – rajeshwaran 2012-08-02 12:42:01

3

在你的eclipse项目中,检查你使用的是谷歌-15而不是平台的android-15,地图支持只能作为谷歌附加包中的一个额外的lib。