我正在我的应用上安装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
感谢您的帮助!
答案 0 :(得分:2)
如果您使用的是Google Maps Android API v2,那可能就是您的项目无效的原因。要使其正常工作,您必须执行以下步骤:
从SDK管理器下载和配置Google Play服务
Google Play服务是Android SDK附加功能的一部分。你可以在附加部分找到它。
将Google Play服务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);
}
}
运行您的应用
你应该把一切都搞定。
答案 1 :(得分:1)
嗨这对我有用:
还记得你的api-key的位置吗? https://code.google.com/apis/console,去那里,在Key for Android应用程序下(带证书)按编辑允许的Android应用程序。
在我的情况下,指纹指的是另一个项目中的旧包,所以我只是去了cmd控制台并得到了我的新指纹,然后输入了我当前的包名,就是BINGO。