谷歌地图 API v2 有什么问题?



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

事情是这样的:

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

当我打开包含地图的夏洛克片段活动时,我得到的警告和错误:

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 服务的最新版本(选中)在项目中,谷歌播放服务作为库导入到属性(如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
        }
    }

就是这样,主代码在这里

到目前为止,该映射仍在工作,我没有与代码图相关

...

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

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

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

  • 转到Settings > Application Manager > Select Your Application > Clear Data
  • 重新安装之前卸载应用程序。
<uses-feature android:glEsVersion="131072" android:required="true" />

将其置于清单中的权限下。

最新更新