前一篇文字主要介绍了集成海康8800,这篇主要说一下遇到的一个坑,先啰嗦两句, 我有两部手机一部小米5s,一部红米note 刷的Android原生6.0.1系统,模拟器用的是5.1系统,同时还用了一个模拟器,在代码集成进去后,立即就调试了,调试完傻眼了, 程序崩溃, 看LOG 如下错误
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/net.comet.example-1/base.apk"],nativeLibraryDirectories=[/data/app/net.comet.example-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libZBarDecoder.so"
at java.lang.Runtime.loadLibrary(Runtime.java:366)
at java.lang.System.loadLibrary(System.java:989)
at com.dtr.zbar.build.ZBarDecoder.<clinit>(ZBarDecoder.java:6)
at me.ele.hbdteam.widget.ScanView$1.onPreviewFrame(ScanView.java:263)
at android.hardware.Camera$EventHandler.handleMessage(Camera.java:1565)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:155)
z因为以往遇到过这样的错误,所以有点经验了,知道这是so文件引起的,所以就检查是不是so文件没有被引用,根据以往代码的集成,和百度一圈后,问题依旧存在, 不停的折腾后,突然小米5s 可以显示视频,另一部手机和模拟器无法正常使用。
z这里说明一下,模拟器是x86的结构,所以直接给摒弃了, 红米note 不能用,那也不行啊, 又折腾了一个小时,修改了build.gradle文件中的targetSdkVersion 22
代码,原先是23 改成22 竟然可以了, 原来这家伙最大支持到22 的目标版本。这个问题共耗时三个半小时,算是一个坑吧。但也有可能是我没有注意到细节问题。反正对我来说是个坑。 在这里记录一下,以后在遇到就不会傻眼了!