Да, ты был прав! Библиотеки OpenCV были скомпилированы. В любом случае, установка на armeabi была решением! В дополнение к этому мне пришлось удалить все остальные папки платформы, по какой-то причине он все еще смотрел туда и падал, но как только я удалил их, он, наконец, работал как намерение. Спасибо!

аюсь добавить OpenCV в существующий мой проект Android, но при объединении их я столкнулся со следующей ошибкой:

12-08 16:15:21.951 22052-22052/ai.inbi.face_recognition_robot E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                      Process: ai.inbi.wonderful_face_recognition_robot, PID: 22052
                                                                                      java.lang.UnsatisfiedLinkError: Couldn't load uvcNative from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/ai.inbi.wonderful_face_recognition_robot-1.apk"],nativeLibraryDirectories=[/data/app-lib/ai.inbi.wonderful_face_recognition_robot-1, /vendor/lib, /system/lib]]]: findLibrary returned null
                                                                                          at java.lang.Runtime.loadLibrary(Runtime.java:358)
                                                                                          at java.lang.System.loadLibrary(System.java:526)

Я пытался закомментировать все ссылки на OpenCV вручную, но если я не удаляю все файлы OpenCV из папки libs, существующая библиотека (com.qihancloud.opensdk) не может найти свои собственные библиотечные функции. Структура папок моих библиотек такая:

Если я удаляю файлы библиотеки OpenCV перед компиляцией, все работает хорошо. Также мой автономный проект OpenCV работает, но как только я пытаюсь объединить их, он не выполняется.

Мой файл build.gradle приложения можно увидеть здесь:https://pastebin.com/Z7hPH3vy

И мой CMakeLists.txthttps://pastebin.com/gGwgWtxP

 Alex Cohn08 дек. 2017 г., 13:33
Вы также должны предоставить общий доступ к файлу CMakeLists.txt, который отвечает за собственную сборку.
 Unfixable10 дек. 2017 г., 10:28
Ой, прости, добавил я сейчас.

Ответы на вопрос(1)

Решение Вопроса

libuvcNative.so не был установлен с вашим APK. Это может произойти по разным причинам.

Ваш случай точно такой же, какописано здесь,QihanOpenSDK_1.1.8.0.aar только имеетarmeabi версияlibuvcNative.so, Исправление заключается в изменении строки № 15build.gradle читать

 abiFilters 'armeabi'

Но я должен признаться, что вашCMakeLists.txt озадачил меня Для меня,

set_target_properties(lib_qihan PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR} /libs/QihanOpenSDK_1.1.8.0.aar)

не работает. Быть искренним,

set_target_properties(lib_opencv PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR} /libs/${ANDROID_ABI}/libopencv_java3.so)

также не соответствует моим книгам. Что касается последнего, я считаю, что вы просто добавили пробел при копировании / вставке скрипта.

Для бывшего я знаю особыйтрюк иметьтак файл из импортированногоAAR используется в родной сборке.

Я считаю, что вашработает, версия не только удаляет все библиотеки OpenCV, но и не собираетlibnative-lib.so, Сюда,CMake никогда не ищетlibuvcNative.so, но все же эта собственная библиотека развернута с APK, потому чтоAAR этоскомпилированный зависимость вашего приложения. Я думаю, что некоторые изQihanOpenSDK классы явно вызывает

System.loadLibrary("uvcNative")

Если твойlibnative-lib.so не использует внешние символы изlibuvcNative.soвам не нужен трюк, о котором я упоминал выше, и вам не нужно упоминатьQihanOpenSDK вообще в вашемCMakeLists.txt.

 Unfixable11 дек. 2017 г., 07:57
Да, ты был прав! Библиотеки OpenCV были скомпилированы. В любом случае, установка на armeabi была решением! В дополнение к этому мне пришлось удалить все остальные папки платформы, по какой-то причине он все еще смотрел туда и падал, но как только я удалил их, он, наконец, работал как намерение. Спасибо!

Ваш ответ на вопрос