使用sqlcipher进行Android 数据库加密时,会默认加入属于sqlcipher的so库,平台默认是3个,arm、x86、mips,这三个平台都有。
但是又因为加了高德地图,默认提供的so文件只有arm,所以就运行时出现

 java.lang.UnsatisfiedLinkError

一般这种情况都是,有的工具提供多平台,而有的工具只提供一个或几个平台,出现的现象是,arm所属平台文件夹下有10个so,而mips所属平台文件夹下有5个,就出现这个错误了。

因为,根据jni的规则,平台文件夹下的so文件,必须是一一对应的,不能少,简单粗暴的办法是,删除掉不需要平台的so、或者补全其他平台的so文件。

但是如何在编译时就解决这个问题?答案是修改gradle的build文件。

buildTypes {    release {        ndk {            abiFilters = ["armeabi"]        }        minifyEnabled false        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }    debug {        ndk {            abiFilters = ["armeabi"]        }        minifyEnabled false        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'    }}

只需要在编译设置中,ndk选项中设置abiFilters,即可过滤平台,但是需要注意的是,这个平台所属的so文件必须完整,不然仍旧会报错。

更多相关文章

  1. Android从零开始(一)
  2. 八、使用pull解析器操作xml文件
  3. Android图表之-Echarts
  4. Android的几个常见小错误ZZ
  5. android 资源管理相关分析(基于android-24)
  6. android studio生成aar包并在其他工程引用aar包
  7. 研究称Android是最不开放的开源移动平台
  8. 将Unity3D游戏移植到Android平台上
  9. Android(安卓)-- 工程目录解释

随机推荐

  1. 深入Android(安卓)【五】 —— 任务和进
  2. Android的多渠道打包|SquirrelNote
  3. 惊艳的Android 5.0与中国无关
  4. Android(安卓)异步消息处理机制 让你深入
  5. 在你的android设备运行java web应用程序
  6. 灵犀告诉你5个小玩意证明你和安卓是真爱
  7. Android判断网络是否打开,并打开设置网络
  8. 如何学习Android开发编程-初学者的5个步
  9. android 左右切换对话框 dialog
  10. WebView与Javascript交互(相互调用参数、