百度地图的集成

今天做了个百度地图的功能集成到自己的项目里面,下面和大家分享一下我的学习

首先打开百度地图的开放平台,这里提供一个打开的网址(http://lbsyun.baidu.com/)。

1.选择“开发-->Android开发-->Android定位SDK”

2.看到“开发指南”,按照上面的步骤进行就行,这里我要强调一点,当在cmd中输入“keytool -list -v -keystore debug.keystore”的时候,enter后会有

”输入密钥口令:”,这个时候要注意,密码就是“android”,不过输入的时候是不显示的,要注意不要输错!然后百度文档介绍的都是非常详细了。

3.,记住访问应用(AK),

4.具体的小demo我这里就不写了,如果需要的话,给你提供一个网址(http://blog.csdn.net/zxc514257857/article/details/72083693)可以下源码,觉得写的不错,

(提醒:在使用的时候集成到项目里面不会报错,但运行的时候就会包一大堆的警告或错误(Error:warning: Ignoring InnerClasses attribute for an anonymous inner class),也许项目安装成功了,但打开的时候显示不出地图,这个是因为你没有改清单文件里面的那个访问应用(AK),一定要重新生成自己的才行,具体怎么改请

接着看下面的叙述)


将百度地图集成到自己的已有项目中的步骤:

①回到百度地图开放平台下,点击“相关下载”,选择自己需要的下载就行,

全部下载下来也没必要,而且里面也包含有百度官方给的例子。

②将需要的jar包放到libs包下,在main包下(与java同级)创建jniLibs包,将,so文件放到这里。另外还要在

在build.gradle中配置SO的使用

sourceSets{ main{jniLibs.srcDir(['libs']) } }

③一定要添加红色的部分,还要注意添加的位置

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //在使用SDK各组件之前初始化context信息,传入ApplicationContext
    //注意该方法要再setContentView方法之前实现
    SDKInitializer.initialize(getApplicationContext());
    setContentView(R.layout.activity_main);

④接下来就是对清单文件的处理了很多的添加权限

<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"></uses-permission><uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission><uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"></uses-permission><uses-permissionandroid:name="android.permission.READ_PHONE_STATE"></uses-permission><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission><uses-permissionandroid:name="android.permission.INTERNET" ></uses-permission><uses-permissionandroid:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission><uses-permissionandroid:name="android.permission.READ_LOGS"></uses-permission>

再添加下面红色部分

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <meta-data
        android:name="com.baidu.lbsapi.API_KEY"
        android:value="自己生成的访问应用(AK)" />

    <activity android:name=".activity.MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

    <service android:name="com.baidu.location.f"
             android:enabled="true"
             android:process=":remote">
        <intent-filter>
            <action android:name="com.baidu.location.service_v2.9"/>
        </intent-filter>
    </service>

</application>
(我在做集成的时候总是会出现(Error:warning: Ignoring InnerClasses attribute for an anonymous inner class)引起
的一大堆错误在网上看到了很多的解决方案:
方法一:
在工程的混淆配置文件proguard-rules.pro文件中添加
-keepattributes EnclosingMethod
方法二:debug证书的问题。我到C:\Users\xxx\.android\debug.keystore目录下,这个证书的时效不知道是多久,可以删掉试试
方法三:访问应用(AK)有问题,可以重新生成试试看
方法四:在主项目build.gradle里添加这句
defaultConfig {
        multiDexEnabled true
   }
方法五:可能是项目中有些包(指的是libs和jinLibs)被重复的引用了,找到相同的删除掉)应该差不多了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值