2013-03-06 106 views
-1

我按照这些web站点的所有步骤:安卓MapActivity不能扩展

https://developers.google.com/maps/documentation/android/v1/hello-mapview

而且我也下载了播放服务-SDK。

不过,我仍然得到一个错误信息:

The import com.google.android.maps cannot be resolved 

而且我也不能扩展MapActivity:

这里是我的manifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.sale" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-feature 
     android:glEsVersion="0x00020000" 
     android:required="true"/> 

    <uses-sdk 
     android:minSdkVersion="11" 
     android:targetSdkVersion="10" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.CAMERA"/> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
    <!-- The following two permissions are not required to use 
    Google Maps Android API v2, but are recommended. --> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <permission 
     android:name="com.example.mapdemo.permission.MAPS_RECEIVE" 
     android:protectionLevel="signature"/> 
     <uses-permission android:name="com.example.sale.permission.MAPS_RECEIVE"/> 

    <application 
     android:allowBackup="true" 
     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="com.example.sale.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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


       </activity> 

     <!-- Entry for RegisterActivity.class --> 
     <activity android:name=".RegisterActivity" 
        android:label="Register New Account"></activity> 
     <meta-data android:value="@string/app_id" android:name="com.facebook.sdk.ApplicationId"/> 
     <activity android:label="@string/app_name" android:name="com.facebook.LoginActivity"></activity> 
     <activity android:name=".ProfileActivity" android:label="Profile page"></activity> 

     <meta-data 
       android:name="com.google.android.maps.v2.API_KEY" 
       android:value="AIzaSyDTVRXMTmfe3jZyAlt-87kRgqM8y4TzIto"/> 

    </application> 

</manifest> 

这里是我开始创建MapActivity(但它不承认MapActivity):

package com.example.sale; 

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


public class SaleMapActivity extends MapActivity { 

} 

问题是什么?我遵循所有步骤,并在谷歌阅读了很多,但没有回答。如何解决它?

+0

重复的问题http://stackoverflow.com/questions/2282553/mapactivity-class-in-android – fonZ 2013-03-06 14:23:55

+0

有两个映射API:地图V1和地图V2。你混淆了两者。由于Maps V1现在已被弃用,请使用Maps V2。地图V2在这里有记录:https://developers.google.com/maps/documentation/android/如果你访问路径中有'v1 /'的URL,你就错了。 – CommonsWare 2013-03-06 14:24:25

+0

您好我使用了Maps v2版本,因为您可以从我的manieft中看到..我不明白,那么我需要写入什么导入?它不承认我的进口? – 2013-03-06 14:32:49

回答

1

你混合了这两种API的有在你的代码的一部分是从谷歌地图API V1:

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

多。

以及API v2的某些部分,您想使用哪个API v2? 我建议你使用谷歌地图API V2坚持,我写了一篇关于如何实现你的应用谷歌地图API V2一篇博客文章中,您可以点击此处查看:

Google Maps API V2 Implementation

+0

嗨,我遵循你的博客中的所有步骤(并且我发现我的代码没有改变)..我错在哪里?为了扩展MapActivity,我需要实现哪些变化? – 2013-03-06 15:34:21

+0

MapActivity是Google API V1对象,不能在V2中使用。你的活动应该扩展FragmentActivity,你应该使用SupportMapFragment来显示地图而不是MapView。此API中的坐标对象是LatLng而不是GeoPoint。 – 2013-03-06 15:41:45

+0

谢谢,我该输入什么项目? – 2013-03-06 15:50:53

0

这是prety多简单,你不需要下载任何东西 只有当你创建一个新的项目改变它时,你需要的是将“编译时”选项改为“googleAPIs”。