例如添加二维码扫描及生成二维码库,
zxing,在https://github.com/xuyisheng/ZXingLib/下载zxinglib到某个目录,然后在AndroidStudio右键项目名称--Open Module Settings,如下图:
然后点左下角app,点左上角“+”,--Import Gradle Project--选择下载的zxinglib(名称中不能有横杠)。
添加依赖,点app,然后点右上方Dependencies,点右边区域左下角“+”--Module dependence--选择zxinglib--ok,就添加进去了。然后可以复用zxing中的MainActivity中的核心代码。
百度地图sdk集成
在http://lbsyun.baidu.com/下载sdk,解压有下面的图,然后将BaiduLBS_Android.jar复制到AndroidStudio的libs文件夹,
将其他的so文件复制到jniLibs文件夹,可是在AndroidStudio中创建项目并没有这个文件夹,所以需要创建,名字统一为jniLibs,在main文件夹直接右键新建jnlLibs,在build.gradle(app对应)中添加如下代码(注意和buildTypes那一个大括号并列,在android大括号之内),然后点击 Sync Now,
//添加jniLibs文件夹
sourceSets{
main{
jniLibs.srcDirs=['libs']
}
}
添加本地仓库
//添加本地仓库
repositories {
flatDir {
dirs'libs'
}
}
}
最后发现要将下载的百度sdk解压后的所有armeabi ,armeabi-v7a ,x86 arm64-v8a,x86,x86_64,BaiduLBS_Android六个文件全部放在libs目录下,才能正常运行。
另外要让页面显示地图,必须在百度地图sdk页面百度地图sdk申请密钥,必须要有sha1值,
要取得sha1值:
1.开发版
cd .android
执行keytool -list -v -keystore debug.keystore命令
2.申请发布版sha1值
cd .android
执行keytool -list -v -keystore debug.keystore /Users/ring/AndroidStudioProjects/keyStorePath/appname.jks
说是要利用发布版sha1值来申请,但是发现使用发布版sha1值申请的密钥,不能显示地图,最后使用开发版sha1值申请的密钥可以显示
然后在manifest文件application中添加密钥
<meta-data
<android:name="com.baidu.lbsapi.API_KEY"
android:value="密钥" />
‘’‘java代码
private MapViewbMapView;
private BaiduMapmBaiduMap;
bMapView = (MapView)findViewById(R.id.bmapView);
mBaiduMap =bMapView.getMap();
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);//普通地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//卫星地图
今天遇到一个android studio的.so文件的问题,当运行的时候出现了这样的一个错误java.lang.UnsatisfiedLinkError: com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader,这个错误就是.so文件不存在或者是文件路径不正确
这是因为在eclipse中,我们把so文件放入libs目录里,可以被打包到apk中,但是在android studio中,如果将so文件放在libs目录里,是不会被打包到apk中的,只有jniLibs目录里的so文件会被打包到apk中,当然这个目录指定的文件夹可以更改,但是默认就是\src\main\jniLibs,所以在没有做指定的情况下我们只有把so文件放在这里才能被打包运行。