4

これらのパッケージ import com.google.android.maps.MapActivity; import com.google.android.maps.MapController; import com.google.android.maps.MapView; を mainactivity.javaにインポートしたい

しかし、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>

前もって感謝します。

4

2 に答える 2

28

プロジェクトを右クリック ---> プロパティ ---> android --> ターゲット名の Google Api を選択します。プロジェクトをクリーンアップし、プロジェクトをビルドします。

于 2012-08-02T12:26:34.010 に答える
3

Eclipse プロジェクトで、プラットフォームの android-15 ではなく google-15 を使用していることを確認してください。マップのサポートは、google アドオン パッケージの追加の lib としてのみ提供されます。

于 2012-08-02T12:25:38.037 に答える