我正在尝试使用谷歌地图创建一个应用程序。我使用谷歌地图api v2但地图没有显示。我只看到一个带有缩放按钮的灰色屏幕。
有什么想法吗?我很确定错误不在API密钥中。
这是我的代码..
Android Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.examplemaps.rs"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<permission
android:name="com.examplemaps.rs.MAPS_RECEIVE"
android:protectionLevel = "signature"/>
<uses-permission android:name="com.examplemaps.rs.MAPS_RECEIVE" />
<uses-feature android:glEsVersion="0x00020000"
android:required="true"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.examplemaps.rs.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.examplemaps.rs.Home"
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="AIzaSyB5aBact***myAPI key"/>
</application>
</manifest>
Home.java:
package com.examplemaps.rs;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.Menu;
public class Home extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_home, menu);
return true;
}
}
和activity_home.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Home" >
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</RelativeLayout>
谢谢!
答案 0 :(得分:2)
我发现了错误。在Android Manifest中,我将READ_GSERVICES替换为:
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
现在,它运作正常!
答案 1 :(得分:0)
我从来没有尝试过,但我很确定MapView应该在MapFragment中(或者如果它是一个Activity,则为MapActivity)。
你有没有尝试谷歌MapView片段?
答案 2 :(得分:0)
您说您确定错误不在API密钥中,但您是否检查过您的API密钥是否与您用于编译项目的帐户相对应? (即您是否使用调试令牌或释放令牌获取了您的API密钥)。
另一件事(如果你还没有)当然是在设备上进行测试。我以前在模拟器上使用灰色瓷砖时遇到过问题,但在真实设备上却没有这样的问题。
否则,Asaf Nevo的回答可能更准确,MapViews
应该是MapActivity
或类似的,并确保您正在构建 Google API < / strong> Android版本。请参阅MapFragment。
取自Google Maps:
答案 3 :(得分:0)
您是否确定“地图”应用实际安装在设备上?即https://play.google.com/store/apps/details?id=com.google.android.apps.maps&hl=en
我有一些没有安装地图的旧设备,并且具有相同的症状(带有缩放按钮但没有地图内容的灰色屏幕)。