zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    spring
    C++容器常用方法简单总结
    【转】shell中各种括号的作用详解()、(())、[]、[[]]、{}
    c++创建对象时一些小细节
    ros建模与仿真(urdf介绍)
    常用vi命令
    Linux零零碎碎的小知识
    Linux目录都是些什么
    关于c/c++指针,指针的指针
    关于c/c++中的二维数组与指针
  • 原文地址:https://www.cnblogs.com/ljmin/p/2966346.html
Copyright © 2011-2022 走看看