解决Android引用多个库的jni架构平台支持冲突的问题

来源:互联网 发布:情深深雨蒙蒙 知乎 编辑:程序博客网 时间:2024/05/17 23:39

今天在自己写Demo时, 引用了两个库: Realm 和高德地图.
接着时开开心心地码代码,顺利地编译apk.然后一运行挂了!!!
异常如下:java.lang.UnsatisfiedLinkError
查看了代码,找到了异常原因:
高德地图只有一个 armeabi 的so文件,而 Realm 带有全平台的so文件.运行时由于手机是 armeabi-v8a ,所以一运行就挂了!
怎么解决呢?本来想下载Realm的源码重新编译aar然后去除其他平台的so文件,但又在群里问了一下,找到了简单的方法.
解决办法
在module的build.gradle文件添加如下设置:

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’
}
}

0 0