2013-04-22 139 views
-3

我想使用google API显示地图。我能够使用debug.keystore生成API密钥,但它只显示带有标签的网格,而不是map,我已经在xml文件中添加了MapView控件。我错过了什么?使用Google API显示地图

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.maptest" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-sdk 
    android:minSdkVersion="7" 
    android:targetSdkVersion="8" /> 
<permission 
    android:name="com.example.maptest.permission.MAPS_RECEIVE" 
    android:protectionLevel="signature" /> 
<uses-feature 
    android:glEsVersion="0x00020000" 
    android:required="true" /> 

<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_GPS" /> 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.maptest.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> 
    <activity android:name="com.google.android.gms" /> 
    <uses-library android:name="com.google.android.maps" android:required="true" /> 

</application> 

+3

另外,我假设您在Google Maps API安装文档中执行了其他步骤? – harism 2013-04-22 18:02:35

+0

请显示活动代码。 – 2013-04-23 06:45:07

回答

0

我想你还没有添加一个参考谷歌Play服务库到您的项目。请参阅本指南Google Maps Android v2以获取更多帮助。

+0

我在我的项目中添加了Google Play服务库作为参考 – user2289052 2013-04-23 04:10:10

0

您很可能在您的Manifest中缺少一些权限,可能是MAPS_RECEIVEREAD_GSERVICES。检查这个相关的question

编辑:刚刚结束标记</application>前插入您的API密钥:

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

添加ACCESS_NETWORK_STATE权限:

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

删除这些行:

<activity android:name="com.google.android.gms" /> 
<uses-library android:name="com.google.android.maps" android:required="true" /> 
+0

我已经添加了关于此的所有许可 – user2289052 2013-04-23 04:08:36

+0

@ user2289052请参阅我编辑的答案。 – Nevermore 2013-04-23 11:47:52

+0

但我在activity_main.xml文件中使用MapView控件,并且还在MapView控件中提供API密钥,我如何在清单文件中插入API密钥。 – user2289052 2013-04-25 04:08:56

0

请检查是否有误呃你在控制台中使用Google android地图,而不是Google Map。这可能也是一个问题。除此之外,您可能还会使用地图片段。使用支持片段XML

机器人:名字= “com.google.android.gms.maps.SupportMapFragment”

的GoogleMap克;

gm = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap(); 
+0

使用上面的代码错误即将来临 - 方法getSupportFragmentManager()是未定义的类型MainActivity – user2289052 2013-04-25 07:49:01

+0

@ user2289052这个错误意味着你的'MainActivity'扩展'Activity'而不是'FragmentActivity'从[Android支持库](http:// developer .android.com /工具/演员/支撑library.html)。 – Nevermore 2013-04-25 15:07:38