0

这个问题很常见但我在谷歌或stackoverflow上没有找到解决方案(4天的研究......)

事情是这样的:

我需要显示一个全屏谷歌地图,我已经在我开发的其他应用程序中做过几次。但在这里我无法让它工作,原因不明!

当我打开包含地图的 SherlockFragmentActivity 时收到的警告和错误:

The Google Play services resources were not found. Check your project configuration to ensure that the resources are included.

Failed to load map. Error contacting Google servers. This is probably an authentication issue (but could be due to network errors).

在这里,我将详细解释我是如何做的并发布一些代码:

图书馆导入:

在 Eclipse 中作为库导入的 Google Play 服务的最新版本(选中)在项目中,Google Play 服务作为库在属性中导入(如 ABS)

显现 :

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

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

    <permission
        android:name="com.company.pckgname.permission.MAPS_RECEIVE"
        android:protectionLevel="signature" />

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

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <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_NETWORK_STATE" />
    <!-- LOCATION -->
    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

    <application
        android:name="app variable name"
        android:allowBackup="true"
        android:icon="@drawable/logo"
        android:label="@string/app_name"
        android:theme="@style/Theme.Styleapp" >
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="api key" />

        <activity
            android:name=".ActivityLauncher"
            android:configChanges="orientation|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.Sherlock.NoActionBar" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />

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

... activities...

        </application>

    </manifest>

地图布局:

<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/map"
    android:name="com.company.pckgname.TransparentSupportMapFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

活动 :

public class ActivityGoogleMap extends SherlockFragmentActivity implements OnInfoWindowClickListener {

        GoogleMap                   _googleMap;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);
        // ABS
        ActionBar bar = getSupportActionBar();
        bar.setTitle(R.string.tle_map);
        bar.setDisplayHomeAsUpEnabled(true);
        // MAP
        _googleMap = ((TransparentSupportMapFragment) getSupportFragmentManager().findFragmentById((R.id.map))).getMap();

 //the map should still display at this point
        }
    }

就是这样,主要代码在这里

地图一直工作到现在,我没有对与代码地图相关的任何事情做任何事情......

我试图在谷歌控制台上重新生成一个调试密钥,更改权限..等等我不知道!!!!

4

2 回答 2

1

更改 API 密钥后,AndroidManifest.xml必须清除应用程序数据。

要清除应用程序数据,请执行以下操作之一:

  • Settings > Application Manager > Select Your Application > Clear Data
  • 在重新安装之前卸载应用程序。
于 2013-09-06T13:21:36.443 回答
0
<uses-feature android:glEsVersion="131072" android:required="true" />

将此置于清单中您的权限之下。

于 2013-09-06T13:29:32.083 回答