解决Android studio中使用vitamio出现UnsatisfiedLinkError异常的问题


真正的做法是:

1、在工程目录下的main方法里面创建jniLibs文件夹,并在jniLibs文件夹下再创建一个子文件夹armeabi,然后再把Vitamio的 .so文件放到armeabi文件下

2、以下是目录结构

|src
|--main/
|----java/
|----res/
|----jniLibs/
|------armeabi/
|--------xxx.so


下面是一年多前写的例子了,不具有参考性


这几天算是被vitamio和android studio折腾够了,由于刚从eclipse转到android studio,以前在eclipse里面通用的方法放在AS上基本上就是挂的节奏。

并且由于AS是一个新工具,出现问题,能百度到的概率很小。

这两天为了解决这vitamio在AS上的坑爹问题,基本上翻遍了墙内,墙外。从坑爹的百度到大名鼎鼎的Stack Overflow,最终给人的答案都不仅如意。

分析:

 由于“gradle” 目前为止还不支持 .so 库文件打包入 apk 。如果使用的第三方库中包含 .so 文件 (一般是 libs\armeabi\ xxx.so ) , 那么只要在代码中出现 “System.loadLibrary( "xxx" ),就一定会在这里抛出异常 UnsatisfiedLinkError 。


为了让其他人不再走我所走过的弯路,在此给出一个比较靠谱的解决方案

1) 在硬盘任意位置建立空文件夹 "lib"(注意名字是 "lib"而不是 "libs" )
2)
把原来的 libs目录下的 armeabi文件夹拷贝至刚建立的 lib目录下.armeabi文件夹中的.so文件也会被一并拷入)
3)
将刚建立的 "lib"目录打包压缩成 .zip文件,同时改名为 “armeabi.jar"
4)
armeabi.jar放入原来的 libs目录下(和其他第三方jar包放在一起)

5) 在module的Buidle修改

dependencies{

    compile fileTree(dir: 'libs',include: '*.jar')

}


猜你喜欢

转载自blog.csdn.net/qwe511455842/article/details/42277187