Card.io没有加载只显示表格的相机

时间:2017-11-20 13:54:36

标签: android opencv card.io

我遇到的问题是,在实现card.io库时,它正在将opencv库添加到我的apk 2x,因为我已经在使用opencv库。我更新了build.gradle以解决该问题:

packagingOptions {    
    pickFirst 'lib/x86/libopencv_core.so'
    pickFirst 'lib/x86/libopencv_imgproc.so'
}

现在,当我运行我的应用程序并打开card.io Activity时,我在logcat中得到以下内容:

I/card.io: card.io 5.5.0  01/26/2017 16:20:26 -0500
D/card.io: Loaded card.io decider library.
D/card.io:     nUseNeon(): false
D/card.io:     nUseTegra():false
D/card.io:     nUseX86():  true
D/card.io: Loaded opencv core library
D/card.io: Loaded opencv imgproc library
E/card.io: Failed to load native library: dlopen failed: cannot locate symbol "_ZN2cv9ExceptionC1EiRKSsS2_S2_i" referenced by "/data/app/com.unrapp.newapp-7ljGOwnnhHqi2y4fZHeVfw==/lib/x86/libcardioRecognizer.so"...
I/card.io: Processor not Supported. Skipping camera.

另外,如果我删除openCV的实现并且我的清单更改了card.io按预期工作,我错过了什么?

我在模拟器中运行它,但已经在真实设备上测试了相同的结果。

非常感谢任何帮助!

更新 经过一番搜索,似乎card.io正在使用openCV版本2.4.13-0

所以我试图更改我正在使用的openCV版本,这启动了card.io相机功能再次工作,但这导致我的项目中出现另一个错误。

Fatal Exception: java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
   at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:59)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
   at java.util.concurrent.FutureTask.run(FutureTask.java:237)
   at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:272)
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
   at java.lang.Thread.run(Thread.java:762)
Caused by java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.unrapp.newapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.unrapp.newapp-1/lib/arm, /system/fake-libs, /data/app/com.xxx.newapp-1/base.apk!/lib/armeabi, /system/lib, /vendor/lib]]] couldn't find "libjniopencv_core.so"

所以从我的观点来看,它正在寻找' libjniopencv_core.so'是不是在旧版本中的东西?我使用的是版本:3.1.0-1.3

我对OpenCV并不熟悉,所以我不确定代码中是否有特定的内容加载此文件,自由职业者在很长一段时间内完成了我们的OpenCV工作。任何帮助或意见表示赞赏!

1 个答案:

答案 0 :(得分:0)

要解决这个问题,我必须让一个比我自己更好的java开发人员使用后来的3.1.0-1.3版本的openCV编译card.io。