Google Maps Android API v2 开发笔记

准备:
Google Maps Android API v2开发谷歌地图,可以使用普通版本的api ,不需Google APIs。但需要安装google play 服务、google play 商店。
安装可以通过豌豆荚,也可以通过cmd命令:adb install
使用cmd命令时需要打开虚拟机才可以安装。
 
开发环境:
android4.0 ,jdk1.6
 
开发流程:
 
一、获取Api key
通过eclipse,Window->Preferences->Android->Build->Default debug keystore查看debug.keystore的位置。
 
 
cmd命令进入目录,运行keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android,得到证书指纹。
 
 
用Gmai用户,进入网址https://code.google.com/apis/console/
在Services下,找到Google Maps Android API v2,并把它设置成on。
 
在API Access 下,点击Create new Android key..
 
输入前面得到的证书指纹,(别忘了后面的分号加包名,也就是你项目的包名)
 
最后可以看到 API key
 
编写应用程序:
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.MapFragment"/>
 
AndroidManifest.xml
1、在 <application> 里面节点加入api key ,your_api_key是上面申请的密匙
<meta-data
    android:name="com.google.android.maps.v2.API_KEY"
    android:value="your_api_key"/>
2、加入权限
<permission
        android:name="com.example.mapdemo.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
<uses-permission android:name="com.example.mapdemo.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<!-- The following two permissions are not required to use
     Google Maps Android API v2, but are recommended. -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
3、加入<users-feature>元素
<uses-feature
        android:glEsVersion="0x00020000"
        android:required="true"/>
 
MainActivity.java
public class MainActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
 
常见问题:
1、java.lang.ClassNotFoundException: android.view.fragment in loader dalvik.system.PathClassLoader
 
 
fragment是android 3.0 才引入的概念,使用更低版本时,需要使用Support Library
布局文件中,把MapFragment改为SupportMapFragment。
MainActivity继承自FragmentActivity而不是Activity。
 
2、java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
 
 
 
这个问题的原因是 gen目录下没有 com.google.android.gms.R 这个类,下面是导入这个包的方法:
eclipse下点击 File->import->android-> Existing Android Code Into Workspace
然后选择browse,把google-play-services_lib导入,位置在android SDK 安装目录下的 ..\extras\google\google_play_services\libproject\google-play-services_lib。
下面的Copy project into workspace 也要勾上。
 
完成后回到项目,右击->properties->android->add->把刚才的google-play-services_lib添加进去。
 
最后gen目录下就有个com.google.android.gms这个包
 
3、如果出现 + — 号,屏幕一片白色,可能是api key 错误,或者是包名有错,可以到 https://code.google.com/apis/console/ 重新申请密匙。
 
参考文章:

http://www.cnblogs.com/mengdd/archive/2013/01/01/2841390.html

https://developers.google.com/maps/documentation/android/start

 

posted @ 2013-03-18 16:50  垚淼  阅读(1709)  评论(1编辑  收藏  举报