具体错误
/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'] } }
另有参考文章:
https://blog.csdn.net/quantum7/article/details/10850610