Предварительно созданная общая библиотека C++ не упаковывается с APK

В чем проблема?

Я пытаюсь интегрировать библиотеку libyuv C++ в мое приложение для Android. Когда я пытаюсь это сделать, .so файлы не упаковываются с моим APK.

Какова точная ошибка?

Build command failed.
Error while executing process 
/Users/daksh_s/Library/Android/sdk/cmake/3.6.4111459/bin/cmake with 
arguments {--build /Users/daksh_s/Development/Sources/AndroidARCore14POCEdgeDetection/app/.externalNativeBuild/cmake/debug/arm64-v8a --target native-lib}
[1/1] Linking CXX shared library ../../../../build/intermediates/cmake/debug/obj/arm64-v8a/libnative-lib.so
FAILED: : && /Users/daksh_s/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++  --target=aarch64-none-linux-android --gcc-toolchain=/Users/daksh_s/Library/Android/sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/darwin-x86_64 --sysroot=/Users/daksh_s/Library/Android/sdk/ndk-bundle/sysroot -fPIC -isystem /Users/daksh_s/Library/Android/sdk/ndk-bundle/sysroot/usr/include/aarch64-linux-android -D__ANDROID_API__=24 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -std=c++14 -O0 -fno-limit-debug-info  -Wl,--exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -nostdlib++ --sysroot /Users/daksh_s/Library/Android/sdk/ndk-bundle/platforms/android-24/arch-arm64 -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -L/Users/daksh_s/Library/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ../../../../build/intermediates/cmake/debug/obj/arm64-v8a/libnative-lib.so 
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o  -llog -latomic -lm "/Users/daksh_s/Library/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_static.a" "/Users/daksh_s/Library/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++abi.a" && :
CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o: In function `Java_com_coe_hcl_android_1arcore14_1poc_1videos_ARView_EdgeActivity_scaleI420':/Users/daksh_s/Development/Sources/AndroidARCore14POCEdgeDetection/app/src/main/cpp/native-lib.cpp:59: undefined reference to `I420Scale'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

NDK Build для либюв

Я включаю .so файлы для моего проекта Android, например, так:

Android Build

build.gradle

sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }

Соответствующий раздел CMakeLists.txt

add_library( yuvlibrary SHARED IMPORTED )
set_target_properties( yuvlibrary PROPERTIES IMPORTED_LOCATION /Users/daksh_s/Development/Sources/AndroidARCore14POCEdgeDetection/app/libs/${ANDROID_ABI}/libyuvlibrary.so )
target_link_libraries( yuv_executor yuvlibrary ${log-lib} )

Я бьюсь над этой проблемой уже два дня. Не могу решить это. Любая помощь будет оценена.

0 ответов

Другие вопросы по тегам