Google地图中的空白活动

时间:2016-03-02 13:16:40

标签: google-maps android-studio

我正在尝试创建一个基本的谷歌地图活动,但当我尝试将其运行到我的智能手机时,我得到一个空白活动(点击here查看该问题的屏幕截图)。我做错了什么?我的API Key可能有问题吗?

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.fa2015.mapstest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="_MyKey_"/>

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
</manifest>

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:name="com.google.android.gms.maps.SupportMapFragment" />

MainActivity.java

import com.google.android.gms.maps.GoogleMap; 
import com.google.android.gms.maps.OnMapReadyCallback; 
import com.google.android.gms.maps.SupportMapFragment; 
import com.google.android.gms.maps.model.LatLng; 
import com.google.android.gms.maps.model.MarkerOptions; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity;

    public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

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

            SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
            mapFragment.getMapAsync(this);
        }

        @Override
        public void onMapReady(GoogleMap map) {
            map.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
        } }

提前致谢。

5 个答案:

答案 0 :(得分:0)

首先确保您已启用Google Maps Android API v2

然后查看this answerthis one

答案 1 :(得分:0)

当您定义Google地图权限或Google API控制台中允许的API配置错误时,通常会出现问题。

确保您在控制台中启用了适用于Android的Google地图版本2而不是用于网络的版本。另外请检查您的许可,这是一张相关的SO票,遇到空白屏幕:Android Google Map API V2 Blank Screen

以下是Google Maps Android API v2的示例演示应用:https://github.com/googlemaps/android-samples

答案 2 :(得分:0)

我认为你错过了API密钥。 我假设你使用android studio(地图活动)。创建项目后,您必须为项目创建API密钥,并且需要在项目中进行链接。 要创建API密钥,您必须访问google_maps_api.xml中提供的链接(来自您的项目)。

创建API密钥后,您必须在google_maps_api.xml文件中插入该API密钥(可能是要求输入密钥的最后一行)。

Follow this pic for reference

答案 3 :(得分:0)

我有同样的问题。要解决此问题,您需要检查您的权限

要做到这一点:

  1. 转到Google云端控制台
  2. 转到启用API和服务部分
  3. 启用Google Maps Android API

答案 4 :(得分:0)

在遵循此 Map With Marker 之后,我仍然出现空白屏幕。然后您需要再次重新创建新的 API KEY 并为 Android 启用 MAPS SDK。 然后您需要限制您的密钥以用于特定用途,并提及平台和 API 限制。