2016-07-01 2 views
1

Я делаю приложение для Android в Qt и OpenCV.libopencv_java3.so в файле qt pro

Он работает на настольном Linux, но не работает на Android с этим:

D/dalvikvm(8059): Trying to load lib /data/app-lib/com.myselfxyz.testapp-1/libTestApp.so 0x421b4f98 
E/dalvikvm(8059): dlopen("/data/app-lib/com.myselfxyz.testapp-1/libTestApp.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1673): could not load library "libopencv_java3.so" needed by "libTestApp"; caused by load_library(linker.cpp:771): library "libopencv_java3.so" not found 

После развертывания приложения на устройстве, файл libopencv_java3.so находится рядом с libTestApp.so в /data/app-lib/com.myselfxyz.testapp-1, поэтому я понятия не имею, почему он не смог его найти.

Я использую:

  • Android NDK r10e
  • OpenCV-андроида-SDk 3.1.0
  • Qt комплект: armeabi-v7a (GCC 4.9, Qt 5.5.1)
  • Мой телефон имеет версию Android 4.2.2, но я не думаю, что это имеет значение.

Моей кварта про файл выглядит следующим образом:

TEMPLATE = app 
TARGET = TestApp 

CONFIG += mobility c++11 
MOBILITY += sensors 

QT += qml quick widgets declarative sensors core multimedia 

SOURCES += main.cpp \ 
    bridge.cpp \ 
    imageprocessor.cpp 

INCLUDEPATH += /usr/lib/jvm/java-7-openjdk-i386/include \ 
    /usr/lib/jvm/java-7-openjdk-i386/include/linux \ 

linux:!android { 
    INCLUDEPATH += /opt/OpenCV/include/ 
    LIBS += -L/opt/OpenCV/build/lib \ 
     -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_videoio 
} 

android { 
    QT += androidextras 
    ANDROID_OPENCV = /opt/OpenCV-android-sdk/sdk/native 
    INCLUDEPATH += $$ANDROID_OPENCV/jni/include 
    ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android 
    LIBS += -L$$ANDROID_OPENCV/libs/armeabi-v7a \ 
     -L$$PWD/android/libs/armeabi-v7a \ 
     -L$$OUT_PWD \ 
     -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect \ 
     -lopencv_photo -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_ts -lopencv_video -lopencv_videoio -lopencv_videostab \ 
     -lopencv_java3 
} 

RESOURCES += qml.qrc 

# Additional import path used to resolve QML modules in Qt Creator's code model 
QML_IMPORT_PATH = 

# Default rules for deployment. 
include(deployment.pri) 

HEADERS += \ 
    bridge.h \ 
    imageprocessor.h 

DISTFILES += \ 
    android/AndroidManifest.xml \ 
    android/res/values/libs.xml \ 
    android/src/com/myselfxyz/testapp/JniExport.java \ 
    android/src/com/myselfxyz/testapp/TestApp.java 

ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android 

ответ

0

Этот ответ предполагает, что вы уже успели запустить приложение без OpenCV, так что все остальное устанавливается соответствующим образом.

Перейдите в настройки своего проекта и найдите «Построить шаги».

Должен быть шаг под названием Build Android APK. Нажмите на Подробнее. В Дополнительные библиотеки список, добавить libopencv_java3.so. Обычно это находится в папке \sdk\native\libs\armeabi-v7a.

Смежные вопросы