百度地图的集成——基础

这篇博客介绍了如何在Android Studio(AS)中新建工程并集成百度地图的基础步骤。首先,博主建议使用AS避免遇到特定错误。接着,详细阐述了申请百度地图账号,下载示例代码的过程。然后,重点讲解了如何根据官方文档获取应用密钥,包括填写应用信息,获取SHA1值,解决校验码错误的方法。最后,提到了导入和配置SDK的jar包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.新建一个工程

  建议使用AS!如果使用ES的话,会出现一个java.lang.NoClassDefFoundError: com.baidu.location.LocationClient 这种错误,在网上百度了半天时间,大都是同样的一些答案,而且都解决不了问题!(这也是我很郁闷的一件事,为什么有些没用的东西,有些人还疯狂的转来转去。。。)所以,最终我还是选择使用了AS。

  2.进入百度地图首页

  1)没有账号的话,申请一个百度账号

  2)下载百度地图示例代码,并解压(下载时可能会下载失败,没办法,多下几次吧。。。)

        

    解压如下

        

 

 

  3.根据官方文档Android地图SDK,集成基础的地图页面

    

 

    1)获取密钥

      * 点击获取密钥

       

 

 

      * 填写信息

       

    

       应用名称(在工程的value >> String.xml >> app_name)

       SHA1值:命令行窗口 >> keytool -list -v -keystore FilePath (FilePath:C盘 >> 用户 >> .android >> debug.keystore)

          

          

 

          注意:如果运行报错   203:校验码错误

             解决方法:1.将运行后的.apk文件,复制出来,后缀名更改为zip,并解压

                    

                  2.命令行窗口 >> keytool -printcert -file FilePath (FilePath:如上图)

                    

                  3.拿到这个SHA1值,最好是去重新到百度地图开放平台上重新创建一次应用,获得一个新的密钥(记得在AndroidManifest.xml中修改)

 

      包名:AndroidManifest.xml中

  

      * 得到一个密钥

       

     2) 配置

      * 导入jar包,并引用

       

 

     * <span style="color:#ff6666;">在build.gradle  >> android  </span>中插入下面代码  


sourceSets {
       main {
           jniLibs.srcDirs = ['libs']
       }
   }
  

      * 在<span style="color:#ff6666;">application</span>中添加开发密钥

1
2
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="开发者 key">     <!-- 这个开发者key,修改成我们上面创建应用获得的密钥即可 -->
</meta-data>
      * 添加所需权限



<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
<uses-permission android:name="android.permission.INTERNET">
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS">
<uses-permission android:name="android.permission.WAKE_LOCK">
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">
<uses-permission android:name="android.permission.GET_TASKS">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
<uses-permission android:name="android.permission.WRITE_SETTINGS">
</uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission></uses-permission>
      * 在布局xml文件中添加地图控件

 <com.baidu.mapapi.map.MapView  
     android:id="@+id/bmapView"  
     android:layout_width="fill_parent"  
     android:layout_height="fill_parent"  
    android:clickable="true" />
 

      * 在应用程序创建时初始化 SDK引用的Context 全局变量,管理地图生命周期

复制代码
public class MainActivity extends Activity {  
    MapView mMapView = null;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);   
        //在使用SDK各组件之前初始化context信息,传入ApplicationContext  
      
        setContentView(R.layout.activity_main);  
        //获取地图控件引用  
        mMapView = (MapView) findViewById(R.id.bmapView);  
    }  
    @Override  
    protected void onDestroy() {  
        super.onDestroy();  
        //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理  
        mMapView.onDestroy();  
    }  
    @Override  
    protected void onResume() {  
        super.onResume();  
        //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理  
        mMapView.onResume();  
        }  
    @Override  
    protected void onPause() {  
        super.onPause();  
        //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理  
        mMapView.onPause();  
        }  
    }
//自定义一个类继承Application
<pre style="font-family: 宋体; font-size: 13.5pt; background-color: rgb(255, 255, 255);"><pre name="code" class="java">public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        SDKInitializer.initialize(getApplicationContext());
    }
}
Application需要在清单文件中配置一下name属性




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值