Android studio中使用sqlcipher安卓7.0中.so文件加载失败问题。
来源:互联网 发布:小米刷机后数据恢复 编辑:程序博客网 时间:2024/06/11 02:00
最近做项目的时候,甲方使用绿盟对APK进行了扫描。发现数据库存在安全漏洞,网上查阅众多资料,最后选用了sqlcipher来进行数据库加密。
关于sqlcipher的使用具体请参考[http://blog.csdn.net/wshngyf/article/details/51112664][1]或者http://www.cnblogs.com/whoislcj/archive/2016/07/30/5511522.html
这里就不在叙述用法了,网上用法已经很多了。
重点在这:
使用build.gradle中引用sqlcipher包的时候,如果用的sqlcipher包版本不对。安卓7.0中可能会报找不到.so文件。我查阅了好多资料,要不说是android7.0的机子好多都是64位的,有的包里没有amr64文件夹中或者其中没有.so文件。还有一种说法是7.0更对访问路径做了限制。ps:问题后边再说。
解决方法:
1:如果你是studio中使用的gradle引用的包
例如:使用的是 compile ‘net.zetetic:android-database-sqlcipher:3.3.1’
那么你只要将包改成:
compile ‘net.zetetic:android-database-sqlcipher:3.5.7@aar’
或者
compile ‘net.zetetic:android-database-sqlcipher:3.5.7’
问题就解决了,那么 现在问题来了。
到底是什么问题造成了sqlcipher在7.0有的包不能用。
1:android7.0的机子好多都是64位的?
查看了3.3.1和3.5.7两个包的结构发现。一个有64一个没有64.可能问题就出现这了。ps:这是对于低版本和高版本的比较
3.3.1 3.5.7
2:7.0更对访问路径做了限制
先来看下3.3.1的加载.so文件的方法:
然后看下3.5.7的:
有没有发现什么问题?
对。其实原理都是一样的都是一样的。都是System.loadLobrary(”“);
所以只要去升级下包就可以了。。 如果不是gradle模式 可以直接去https://github.com/sqlcipher/android-database-sqlcipher下载最新的包,来替换原来的。
还有一点,记得如果使用了混淆要在proguard-rules中加
-keep class net.sqlcipher.* {;}
-keep class net.sqlcipher.database.* {;}
千万别忘了。
- Android studio中使用sqlcipher安卓7.0中.so文件加载失败问题。
- 安卓7.0 加载libsqlite.so文件失败
- 安卓7.0 加载libsqlite.so文件失败
- Android Studio中加载.so库文件方法
- Android Studio中加载.so库文件方法
- 关于libmsc.so文件加载到Android Studio中
- Android studio java.lang.UnsatisfiedLinkError加载.so文件失败解决办法
- Android Studio中使用*.jar,*.aar和*.so文件
- Android Studio 加载so文件
- android studio加载.so文件
- Android Studio 中引入.so文件和引用.so文件
- Android studio中so文件找不到
- Android Studio中如何引用so文件
- Android studio中.so文件的提交
- Android studio 中添加 .so 文件
- Android Studio中引入.so文件
- Android studio中.so文件的提交
- Android如何使用so文件和Android studio中导入so
- Android中实现跑马灯效果
- SpringBoot之集成Spring AOP
- vs 命令测试工具mstest
- 优化洗牌(shuffle)和排序阶段
- WebView各个属性
- Android studio中使用sqlcipher安卓7.0中.so文件加载失败问题。
- sql根据某一字段值的不同关联不同的表(一)
- Linux中常用操作命令
- 智能指针浅析
- 重启eclipse color theme失效的解决办法
- 十四、Shell函数参数
- ubuntu下pycham的安装和使用
- jenkins在windows下的安装
- ViewStub的实现深入解析