Use two libraries in one JNI file

I use the vuforia API to make an augmented reality application. Now I am trying to integrate another library ( opencv ). I made changes to the android.mk file. But I still cannot use the opencv library and the QCAR library in the same .cpp file. I tried to access the java class to communicate between a file using QCAR and files using OPENCV, but this mapping is time. I need to use two libraries in the same file. this is my android.mk file:

I am editing the code as mentioned in the comments:

LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := QCAR-prebuilt LOCAL_SRC_FILES = ../../../build/lib/$(TARGET_ARCH_ABI)/libQCAR.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../../build/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_PRELINK_MODULE := false OPENCV_LIB_TYPE:=STATIC include $(LOCAL_PATH)/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/OpenCV.mk LOCAL_MODULE := ImageTargets USE_OPENGL_ES_1_1 := false ifeq ($(USE_OPENGL_ES_1_1), true) OPENGLES_LIB := -lGLESv1_CM OPENGLES_DEF := -DUSE_OPENGL_ES_1_1 else OPENGLES_LIB := -lGLESv2 OPENGLES_DEF := -DUSE_OPENGL_ES_2_0 endif LOCAL_CFLAGS := -Wno-write-strings -Wno-psabi $(OPENGLES_DEF) LOCAL_LDLIBS += \ -llog $(OPENGLES_LIB) LOCAL_SHARED_LIBRARIES += QCAR-prebuilt LOCAL_SRC_FILES := ImageTargets.cpp SampleUtils.cpp Texture.cpp SampleMath.cpp LOCAL_ARM_MODE := arm include $(BUILD_SHARED_LIBRARY) 

mon fichier application.mk:

 APP_ABI := armeabi armeabi-v7a APP_PLATFORM := android-8 APP_STL := gnustl_static APP_CPPFLAGS := -frtti -fexceptions 

when I create a project without adding any opencv function to my ImageTargets.cpp, I get the following:

 E:\android-ndk-r8\ndk-build.cmd all "Compile++ arm : ImageTargets <= ImageTargets.cpp "Compile++ arm : ImageTargets <= SampleUtils.cpp "Compile++ arm : ImageTargets <= Texture.cpp "Compile++ arm : ImageTargets <= SampleMath.cpp Prebuilt : libopencv_contrib.a <= jni/../../../OpenCV-2.4.5-android- sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_legacy.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_ml.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_stitching.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_objdetect.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_ts.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_videostab.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_calib3d.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_photo.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_video.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_features2d.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_highgui.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_androidcamera.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_flann.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_imgproc.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : libopencv_core.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../libs/armeabi/ Prebuilt : liblibjpeg.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi/ Prebuilt : liblibpng.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi/ Prebuilt : liblibtiff.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi/ Prebuilt : liblibjasper.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi/ Prebuilt : libIlmImf.a <= jni/../../../OpenCV-2.4.5-android-sdk/sdk/native/jni/../3rdparty/libs/armeabi/ SharedLibrary : libImageTargets.so Install : libImageTargets.so => libs/armeabi/libImageTargets.so Install : libQCAR.so => libs/armeabi/libQCAR.so "Compile++ arm : ImageTargets <= ImageTargets.cpp "Compile++ arm : ImageTargets <= SampleUtils.cpp "Compile++ arm : ImageTargets <= Texture.cpp "Compile++ arm : ImageTargets <= SampleMath.cpp SharedLibrary : libImageTargets.so Install : libImageTargets.so => libs/armeabi-v7a/libImageTargets.so Install : libQCAR.so => libs/armeabi-v7a/libQCAR.so 

But when I add the opencv function to ImageTargets.cpp (which already uses the QCAR library ), I get: E:/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/..‌​/lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld.exe‌​: Warning: ./obj/local/armeabi/libopencv_core.a(array.cpp.o): Unknown EABI object attribute 44 Any ideas what I'm doing wrong in this file?

0
source share

Source: https://habr.com/ru/post/1442790/


All Articles