一、错误及异常的解决方法
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、