Android引用多个平台so库,冲突的问题
来源:互联网 发布:阜宁农村淘宝站点查询 编辑:程序博客网 时间:2024/05/29 08:14
使用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文件必须完整,不然仍旧会报错。
0 0
- Android引用多个平台so库,冲突的问题
- Android中so库的引用问题
- jQuery解决引用多个JavaScript库引起的$命名冲突的问题
- 解决Android引用多个库的jni架构平台支持冲突的问题
- 关于Android引用包冲突的问题。
- Android so文件的制作封装与跨平台引用
- Android项目引用不同library导致多个android-support-v4包冲突问题
- Android项目引用不同library导致多个android-support-v4包冲突问题
- Android项目引用不同library导致多个android-support-v4包冲突问题
- iOS 多个引用库文件冲突
- 多个项目引用 android-support-v4.jar 时候冲突问题
- Android so文件引用问题
- android 高德地图 和 fresco abi so 库冲突的问题。
- Android项目引用library导致多个android-support-v4冲突的解决
- 多个so文件引用起的坑
- android Jni编译多平台so库
- android项目引用多个library导致引用android-support-v4.jar冲突
- android studio 引用 so库
- 软中断和硬中断介绍
- Leetcode-292-Nim Game
- 恢复SMC管理节点并添加节点
- 数据结构 学习笔记(二):线性结构:线性表(顺序表,链表,广义表,多重链表)
- MySQL存储过程讲解
- Android引用多个平台so库,冲突的问题
- 移动端meta标签
- eclipse选中一个单词,其他相同的单词都会高亮显示的颜色修改
- 函数指针题目
- 博客专栏 > 【OpenCV】入门教程
- java 时间与字符串之间的转换
- Ubuntu16.04安装QQ(for linux)
- java虚拟机主要内存划分
- Android.mk