0

我正在尝试在应用程序中使用地图视图,因此我一一执行了这些步骤。但我只有一个灰色网格。我生成了四次 API 密钥,但每次都得到相同的结果。

请你帮助我好吗?

这些是我得到的错误:

failed to find provider info for com.google.settings
couldn't get connection factory client

我的清单文件

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

        <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="17" />

       <uses-permission android:name="android.permission.INTERNET" />
         <uses-permission     android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
         <uses-permission     android:name="com.me.test.g_maps.permission.MAPS_RECEIVE"/>
         <uses-permission     android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
         <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

        <permission
        android:name="com.me.test.g_maps.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>

        <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
            <activity
            android:name="com.me.test.g_maps.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="AIzaSyCEgLQ7HgXiKTP8grZRmpIPAeWoSfAjrBM"/>

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

        </application>

        </manifest> 

我的活动

    package com.me.test.g_maps;

    import android.os.Bundle;

   import com.google.android.maps.MapActivity;

    public class MainActivity extends MapActivity {

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

        @Override
        protected boolean isRouteDisplayed() {
            // TODO Auto-generated method stub
            return false;
        }

    }

我的 xml

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

        <com.google.android.maps.MapView 
            android:id="@+id/mapView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:enabled="true"
            android:clickable="true"
            android:apiKey="AIzaSyCEgLQ7HgXiKTP8grZRmpIPAeWoSfAjrBM"
            />

    </RelativeLayout>
4

3 回答 3

1

看起来您几乎没有问题(如果您的目标是 Google Map API V2 技术)

1.首先去掉这个权限:

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

它是 Google Maps API V1 的一部分,在 Google Maps API V2 中不需要。

2. Google Maps API V2 需要 OpenGL-v2 支持,因此您必须在清单文件中添加以下内容:

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

3.检查您是否在 Google API 控制台中打开了正确的 API: 在此处输入图像描述

4.尝试通过删除debug.keystore,编译项目再次重新生成密钥,这将产生新的SHA1签名。

5. 如果您在模拟器中运行您的应用程序,请查看我写的关于如何在模拟器中启用 Google Map API V2 的博客文章:

模拟器中的 Google Map API V2

于 2013-04-04T11:11:57.990 回答
0

替换com.google.android.maps.MapViewcom.google.android.gms.maps.MapView。您仍在使用 Maps API V1 的一部分。使用 SupportMapFragment 而不是 MapView 会更好(更容易)。

也不要使用MapActivity

于 2013-04-04T16:41:53.133 回答
0

如果您使用的是 Google api V1,则必须创建一个调试密钥才能在调试应用程序时正确加载地图而不签名。
否则,你必须看看这里。需要在清单上进行新配置才能使用谷歌地图 api V2。

于 2013-04-04T10:33:15.913 回答