这个问题很常见,但我没有在 google 或 stackoverflow 上找到解决方案(4 天的研究...)
事情是这样的:
我需要显示全屏谷歌地图,我已经在我开发的其他应用程序中完成了多次。 但在这里我无法让它工作,原因未知!
打开包含 map 的 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)
list :
<?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>
map 布局:
<?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" />
Activity :
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
}
}
就这样了,主要代码在这里
map 到目前为止一直在工作,我没有做任何与代码 map 相关的事情...
我试图在谷歌控制台上重新生成调试 key ,更改权限..等等我不知道!!!!
最佳答案
更改 AndroidManifest.xml
中的 API key 后,您必须清除应用程序数据。
要清除应用程序数据,请执行以下操作之一:
- 转至
设置 > 应用程序管理器 > 选择您的应用程序 > 清除数据
- 请先卸载该应用程序,然后再重新安装。
关于java - 谷歌地图 API v2 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18658757/