so没有打包进AKP导致java.lang.UnsatisfiedLinkError: dlopen failed: library “lib.so“ not found
Posted 柳鲲鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了so没有打包进AKP导致java.lang.UnsatisfiedLinkError: dlopen failed: library “lib.so“ not found相关的知识,希望对你有一定的参考价值。
- 具体错误
/androidRuntime: FATAL EXCEPTION: BaseActivity
Process: com.serenegiant.usbcameratest, PID: 5494
java.lang.UnsatisfiedLinkError: dlopen failed: library "libjpeg-turbo1500.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
at java.lang.System.loadLibrary(System.java:1664)
at com.serenegiant.usb.UVCCamera.<clinit>(UVCCamera.java:119)
at com.serenegiant.usbcameratest.MainActivity$2$1.run(MainActivity.java:143)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:236)
at android.os.HandlerThread.run(HandlerThread.java:67)
- 原因分析
这种情形一般出现于:app依赖于某个jni项目。你以为jni项目编译过了,app依赖也正确,就可以把so打包到apk?图样图森破。
- 解决办法
首先在app目录中,搜索so的位置,一般应该是lib。
然后在build.gradle中配置:
android {
......
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
另有参考文章:
以上是关于so没有打包进AKP导致java.lang.UnsatisfiedLinkError: dlopen failed: library “lib.so“ not found的主要内容,如果未能解决你的问题,请参考以下文章