2013-03-25 83 views
0

我对Android上的GoogleMaps(api10)有一些奇怪的麻烦,我想我需要在我的活动屏幕上显示地图,但它显示为空白(带有网格和缩放按钮的灰色空间)。下面是我的AndroidManifest,布局文件和活动来源。Android空白空间上的谷歌地图

[更新]我再拍项目只是在地图

AndroidManifest

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

<uses-sdk 
    android:minSdkVersion="10" 
    android:targetSdkVersion="16" /> 

<permission android:name="your.application.package.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
<uses-permission android:name="your.application.package.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-feature 
    android:glEsVersion="0x00020000" 
    android:required="true"/> 

<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="pl.example.mapa.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> 

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

布局

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<fragment 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:id="@+id/map" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

mainActivity源

package pl.example.mapa; 

import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.FragmentActivity; 

import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.MapFragment; 

public class MainActivity extends FragmentActivity { 

private GoogleMap gMap; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //gMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.mapFragment)).getMap(); 
} 
} 

我甘蔗添加日志跟踪由于我不能在模拟器

运行它,我敢打赌,它的一些小的觉得我会错过,但在这一刻所有的搜索后,我不知道whot是错误的。

回答

1

您需要将API密钥添加到您的Manifest文件中。

1)获取您的API密钥(良好指示here

2)结束标记之前加入下面的一行到你的清单文件。

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

我发现我的错误,我选择谷歌地图API V2没有针对Android :(亡羊补牢之后再也没有 – Mariusz 2013-09-16 14:06:15

0

它看起来像你使用的是地图v1,我也有这个问题。新的API(v2)需要将API密钥存储在Android清单中并使用不同的库。当从v1移动到v2时,我发现this教程非常有用。

+0

沃格尔先生得到了GR8 Android的教程,但that1就是为什么即时通讯失去 – Mariusz 2013-03-26 09:27:44

0

看起来好像你在混合两个Google Maps服务的API。大多数情况下,您使用的是API v1,但是此权限是API v2:

<permission 
android:name="pl.mariusz.georeminder.permission.MAPS_RECEIVE" 
android:protectionLevel="signature"/> 
<uses-permission android:name="pl.mariusz.georeminder.permission.MAPS_RECEIVE"/> 
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 

并且可能是导致您遇到问题的原因之一。

另一方面,我会建议你转移到API v2,因为API v1很快就会被弃用(如果它不是已经存在的话),下面是一篇关于如何将Google Map API V2集成到您的应用程序:

Google Maps API V2

+0

我仍然得到空白空间 – Mariusz 2013-03-26 14:23:53

+1

@Mariusz,你会介意用当前的代码,结果和堆栈跟踪来更新你的问题......所以我们将得到更多的信息,然后只是:“我仍然得到空白的温泉CE ......” – 2013-03-26 14:38:08