Google Maps API v2灰色屏幕

时间:2013-06-11 10:13:03

标签: android google-maps

我正在尝试创建与Google地图相关联的应用程序。但是当屏幕加载时,地图应该只是灰色。我该如何解决这个问题?

来自我的logcat的重要信息。

06-11 03:32:55.196: E/Google Maps Android API(11671): 
Ensure that the following correspond to what is in the API Console: Package Name: my pacakage,
 API Key: my key, 
Certificate Fingerprint: my fingerprint

活动

import android.os.Bundle;
import android.view.Menu;

import android.support.v4.app.FragmentActivity;

public class mapPage extends FragmentActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map_page);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

清单

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

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <permission
    android:name="my package.permission.MAPS_RECEIVE"
    android:protectionLevel="signature"/>
  <uses-permission android:name="my package.permission.MAPS_RECEIVE"/>
  <!-- Copied from Google Maps Library/AndroidManifest.xml. -->
  <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="16"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
  <!-- External storage for caching. -->
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <!-- My Location -->
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  <!-- Maps API needs OpenGL ES 2.0. -->
  <uses-feature
    android:glEsVersion="0x00020000"
    android:required="true"/>
  <!-- End of copy. -->
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

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

        <activity
            android:name="my package.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=".main">
               </activity>

         <activity android:name=".mapPage">
              </activity>

         <activity android:name=".ThirdPartyWeb"
          android:theme="@android:style/Theme.Dialog">  

              </activity>

    </application>

</manifest>

布局

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

  <fragment xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/map"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:layout_height="250dp"
        android:layout_width="fill_parent"
  class="com.google.android.gms.maps.SupportMapFragment"/>

    <ImageView 
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true"
        android:layout_height="50dp"
        android:layout_width="fill_parent"
        android:background="@color/darkGrey"/>

        <Button 
        android:layout_alignParentTop="true"
        android:layout_marginTop="10dp"
        android:layout_alignParentLeft="true"
        android:id="@+id/menuButton"
        android:background="@drawable/icon_menu"
        android:layout_height="30dp"
        android:layout_width="30dp"/>

         <Button 
        android:layout_alignParentTop="true"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/menuButton"
        android:layout_marginLeft="20dp"
        android:id="@+id/"
        android:background="@drawable/icon_off"
        android:layout_height="35dp"
        android:layout_width="55dp"/>

       <EditText          
        android:layout_alignParentTop="true"
        android:layout_width="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_toRightOf="@+id/"
        android:layout_marginLeft="20dp"
        android:layout_toEndOf="@+id/"
        android:id="@+id/seachBox"
        android:hint="@string/search"
        android:layout_height="35dp"
        android:layout_alignParentEnd="true"
        android:background="@color/white"/>

       <Button 
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_marginTop="10dp"
        android:id="@+id/searchButton"
        android:background="@drawable/graphic_search"
        android:layout_height="35dp"
        android:layout_width="20dp"/>

       <ImageView 
        android:layout_above="@+id/newsFeed"
        android:layout_centerInParent="true"
        android:layout_height="35dp"
        android:layout_width="fill_parent"
        android:background="@color/darkGrey"/>

       <TextView 
           android:layout_alignParentLeft="true"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           android:layout_above="@+id/newsFeed"
           android:layout_marginBottom="11dp"
           android:textColor="@color/white"
           android:text="@string/news_feed"
            android:textAppearance="?android:attr/textAppearanceSmall"/>

        <ListView 
           android:layout_alignParentBottom="true"
           android:id="@+id/newsFeed"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content">"

       </ListView>



</RelativeLayout>

6 个答案:

答案 0 :(得分:11)

好的问题解决了。在谷歌api控制台上,有两个谷歌地图api v2&#39; s。我有一个只是谷歌地图api v2,如果你看上面它,它说google maps v2 android。我也打开了那个,地图正在运行。

答案 1 :(得分:4)

从错误看来,Google的API控制台中的配置似乎是错误的。看看我写的这篇博文,确保你正确地完成了所有步骤:

Google Maps API V2 Key

答案 2 :(得分:1)

@rajwant rai:也许你的代码是针对API v1的,因为我使用API​​ v2并且不需要这样的代码。

@author:你在手机或模拟器上测试它吗?手机必须安装一些Google服务才能使地图正常工作。 如何准备工作项目更多描述如下: https://developers.google.com/maps/documentation/android/start

答案 3 :(得分:1)

有两种模式。发布模式和调试模式,如果要在发布模式下使用,那么你想自定义创建fingure打印。调试模式是常用模式。

https://developers.google.com/maps/documentation/android/start#obtaining_an_api_key

请参阅在doucmentation中显示发布证书指纹和调试认证fingure print

答案 4 :(得分:0)

尝试在清单文件中添加以下内容(在元数据标记之后)

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

答案 5 :(得分:0)

我有同样的问题,但对我来说,应用程序停止工作。我发现Eclipse生成的debug.keystore存在问题。它可能发生在:

  • 源代码已从repo更新,但debug.keystore来自本地目录USER_DIR.android\debug.keystore
  • 您有光盘故障而您没有恢复旧的debug.keystore
  • 您以某种方式删除了USER_DIR.android\debug.keystore

要确认此问题,请从USER_DIR.android\debug.keystore获取SHA1并与Android Console中的SHA1进行比较。他们必须是一样的。如果没有尝试按照this guide生成新的 Android for Android应用键。

获得后,请更新AndroidManifest.xml文件

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

并清理整个./bin目录。手动制作,不要信任 Project - &gt; Eclipse中的Clean ... 选项。在安装新应用之前,先从设备上卸载应用。

为了避免将来出现此问题,请将调试密钥库添加到repo。保密释放。