繁体   English   中英

使用Google Maps API android无法显示地图

[英]Map not displaying with Google Maps API android

我正在我的应用上安装Google Maps API。 我已经运行了一切,可以启动Google地图活动,但地图不会显示。 它只显示一个可以放大和缩小的网格。

    package com.fotolife.app;

import android.os.Bundle;

import com.google.android.maps.MapActivity;
import com.google.android.maps.MapView;

public class Map extends MapActivity {

    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }

    @Override
    protected void onCreate(Bundle arg0) {
        // TODO Auto-generated method stub
        super.onCreate(arg0);
        setContentView(R.layout.map);


    }


}

那是我的Map.java

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <com.google.android.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="I Took this out for security reasons, but it works."
/>

</LinearLayout>

这是我的map.xml

谢谢您的帮助!

如果您使用的是Google Maps Android API v2,那可能就是您的项目无效的原因。 要使其正常工作,您必须执行以下步骤:

从SDK管理器下载并配置Google Play服务

Google Play服务是Android SDK附加功能的一部分。 您可以在附加部分找到它。

将google play services lib JAR添加到项目构建路径中

lib JAR安装在路径中

$ANDROIDSDK_HOME/extras/google/google_play_services/libproject/google-play-services_lib/libs

使用Google API控制台获取API密钥

您可以通过发出命令使用操作系统控制台生成SHA1指纹以进行调试:

$ keytool -list -v -keystore ~/.android/debug.keystore -storepass android

在Google API控制台中,转到API Access,然后在右侧窗格中选择“创建新的Android密钥...”。 然后将SHA1指纹放在文本框中,后跟分号和项目的包名称。

在项目的清单文件中指定权限设置

将以下清单标记放在应用程序清单文件中(将com.example替换为项目的包名称):

  <permission android:name="com.example.permission.MAPS_RECEIVE" android:protectionLevel="signature"/>
  <uses-permission android:name="com.example.permission.MAPS_RECEIVE"/>
  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
  <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

  <!-- Maps API needs OpenGL ES 2.0. -->
  <uses-feature android:glEsVersion="0x00020000" android:required="true"/>

在项目的清单文件中指定从API控制台生成的API密钥

在关闭应用程序标记之前将其作为最后一个元素

<meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="your api key goes here"/>

将地图添加到项目中

main.xml中

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

Main.java

import android.app.Activity;
import android.os.Bundle;

public class Main extends Activity {

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

运行您的应用程序

你应该把一切都搞定。

嗨这对我有用:

还记得你的api-key的位置吗? https://code.google.com/apis/console ,去那里和Key for Android应用程序(带证书)下按编辑允许的Android应用程序。

在我的情况下,指纹指的是一个不同项目中的旧包,所以我只是去了cmd控制台并得到了我的新指纹,然后输入了我当前的包名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM