问题原因
这是因为 JNI调用出错,就是java代码调用so库出了问题,有可能是找不到so库,有可能是项目本身有其他的so库与当下jar包里的so库重名,导致不知道调用哪一个,所以就会报找不到jar包里某个类的异常。
如何解决
- 打开有问题的jar包或者aar包,找到里面的so库
- 把你需要的so库复制到studio的jnilibs目录下,没有的话,自己创建
- 复制到开发工具后,然后把jar包里复制的so库删除
然后重点来了,你的studio可能会报错
报的错误一般是so库重复,studio找不到指定的so位置
所以,你需要在你的build.gradle下,写这几行代码
packagingOptions {
pickFirst 'lib/arm64-v8a/xx.so'
pickFirst 'lib/arm64-v8a/xx.so'
pickFirst 'lib/armeabi-v7a/xx.so'
pickFirst 'lib/armeabi-v7a/xx.so'
}
把xx换成你的so名字