百度地图sdk开发笔记

这篇博客记录了在Android开发中使用百度地图SDK遇到的问题及解决方案,包括去除Logo、隐藏比例尺和缩放按钮,设置比例尺和罗盘位置,解决MD5获取和导航SDK冲突问题,以及Android EditText和TextView的换行策略。

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

一、错误及异常的解决方法

1、Native method not found: com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache.Create:()

解决方法:在jnilibs新建一个armeabi-v7a目录,然后把那个so文件重新复制一份进去

注:如果按照官网教程

在build.gradle中配置SO的使用,如下所示:

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

则还会导致该错误。

2、去掉百度Logo、隐藏比例尺、缩放按钮

// 隐藏logo
View child = mMapView.getChildAt(1);
if (child != null && (child instanceof ImageView || child instanceof ZoomControls)){
child.setVisibility(View.INVISIBLE);
}
//地图上比例尺
mMapView.showScaleControl(false);
// 隐藏缩放控件
mMapView.showZoomControls(false);
//设置比例尺位置
mapview.setScaleControlPosition(new Point(x, y));

3、设置比例尺,罗盘位置

mapView.setScaleControlPosition(new Point(100, 300));
直接调用是没用的,应该通过OnMapLoadedCallback这个监听
<pre name="code" class="java"> mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
            @Override
            public void onMapLoaded() {
                mMapView.setScaleControlPosition(new Point(80, 791));
                UiSettings uiSettings = mBaiduMap.getUiSettings();
                uiSettings.setCompassPosition(new Point(65,150));
            }
        });
 
  

4、无法获得MD5

要使用百度地图的导航功能的语言导航,需要在导航TTS平台中进行注册申请。需要应用签名为MD5,

按照Trinea的教程,
keytool -list -keystore E:\Trinea\keystore\appsearch.keystore
只能获得SHA1

应该加上 -v



完整的获得MD5的方法就是打开终端,输入
keytool -v -list -keystore keystore.jks

其中keystore.jks为密钥的地址和文件,我的是 C:\Users\Administrator\.android\debug.keystore,也可以直接在Android Studio中打开Terminal输入。

5、加入导航sdk后发生了一系列冲突问题

只能先暂时删除导入的导航的jar文件。

二、Android学习笔记

1、

EidtText和textview中内容过长的话自动换行,使用android:ellipsize与android:singleine可以解决,使只有一行。

EditText不支持marquee

用法如下:

在xml中

android:ellipsize = "end"    //省略号在结尾

android:ellipsize = "start"   //省略号在开头

android:ellipsize = "middle"     //省略号在中间

android:ellipsize = "marquee"  //跑马灯

android:singleline = "true"

当然也可以用代码语句

tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));

tv.setSingleLine(true);
2、


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值