не удается найти AMediaCodec_signalEndOfInputStream
в процессе ссылки.
ExportThread.cpp источник
апиуровень android-21
вот мой конфиг
CmakeLists.txt
target_link_libraries(${Lib_Name}
android
mediandk
EGL
GLESv3
log )
gradle.build
ndk {
abiFilters 'armeabi-v7a'
// , 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_PLATFORM=android-21'
}
}
ошибки
[35/35] Linking CXX shared library /Users/rqg/ASProjects/PboTest/muses/build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so
FAILED: : && /Users/rqg/Library/Android/sdk/ndk-bundle/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ --target=armv7-none-linux-androideabi --gcc-toolchain=/Users/rqg/Library/Android/sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64 --sysroot=/Users/rqg/Library/Android/sdk/ndk-bundle/sysroot -fPIC -isystem /Users/rqg/Library/Android/sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb -Wa,--noexecstack -Wformat -Werror=format-security -std=c++11 -frtti -fexceptions -Wall -O0 -fno-limit-debug-info -Wl,--exclude-libs,libgcc.a --sysroot /Users/rqg/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--fix-cortex-a8 -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o /Users/rqg/ASProjects/PboTest/muses/build/intermediates/cmake/debug/obj/armeabi-v7a/libnative-lib.so CMakeFiles/native-lib.dir/DecodeThread.cpp.o CMakeFiles/native-lib.dir/DelayThread.cpp.o CMakeFiles/native-lib.dir/EffectLine.cpp.o CMakeFiles/native-lib.dir/EffectManager.cpp.o CMakeFiles/native-lib.dir/ExportThread.cpp.o CMakeFiles/native-lib.dir/NativeSurfaceTexture.cpp.o CMakeFiles/native-lib.dir/Painter.cpp.o CMakeFiles/native-lib.dir/PboPool.cpp.o CMakeFiles/native-lib.dir/Player.cpp.o CMakeFiles/native-lib.dir/PrepareThread.cpp.o CMakeFiles/native-lib.dir/RenderManager.cpp.o CMakeFiles/native-lib.dir/RenderTask.cpp.o CMakeFiles/native-lib.dir/effect/BlurEffect.cpp.o CMakeFiles/native-lib.dir/effect/BoostEffect.cpp.o CMakeFiles/native-lib.dir/effect/ChaplinEffect.cpp.o CMakeFiles/native-lib.dir/effect/Effect.cpp.o CMakeFiles/native-lib.dir/effect/FadeEffect.cpp.o CMakeFiles/native-lib.dir/effect/NormalEffect.cpp.o CMakeFiles/native-lib.dir/framesource/IFrameSource.cpp.o CMakeFiles/native-lib.dir/framesource/ImageFrameSource.cpp.o CMakeFiles/native-lib.dir/framesource/VideoFrameSource.cpp.o CMakeFiles/native-lib.dir/gl/EglCore.cpp.o CMakeFiles/native-lib.dir/gl/surface/EglSurfaceBase.cpp.o CMakeFiles/native-lib.dir/gl/surface/OffscreenSurface.cpp.o CMakeFiles/native-lib.dir/gl/surface/WindowSurface.cpp.o CMakeFiles/native-lib.dir/native-lib.cpp.o CMakeFiles/native-lib.dir/render/BlurRender.cpp.o CMakeFiles/native-lib.dir/render/FadeRender.cpp.o CMakeFiles/native-lib.dir/render/NormalRender.cpp.o CMakeFiles/native-lib.dir/render/PolygonOffsetRenderer.cpp.o CMakeFiles/native-lib.dir/render/Render.cpp.o CMakeFiles/native-lib.dir/util/DelayLooper.cpp.o CMakeFiles/native-lib.dir/util/Looper.cpp.o CMakeFiles/native-lib.dir/util/common.cpp.o -landroid -lmediandk -lEGL -lGLESv3 -llog -lm "/Users/rqg/Library/Android/sdk/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi-v7a/libgnustl_static.a" && :
/Users/rqg/ASProjects/PboTest/muses/src/main/cpp/ExportThread.cpp:37: error: undefined reference to 'AMediaCodec_signalEndOfInputStream'
/Users/rqg/ASProjects/PboTest/muses/src/main/cpp/ExportThread.cpp:107: error: undefined reference to 'AMediaCodec_createInputSurface'
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
ExportThread.cpp
тогда - person pskink   schedule 22.07.2017ExportThread.cpp
, используемый наline 37
- person Fantasy_RQG   schedule 22.07.2017libmediandk.so
пропускает эти символы, перейдите в папкуlib
и попробуйте запуститьnm libmediandk.so | grep AMediaCodec_signalEndOfInputStream
- person pskink   schedule 22.07.2017AMediaCodec_signalEndOfInputStream
нет, есть ли обходной путь для выполнения этой работы? - person Fantasy_RQG   schedule 22.07.2017AMediaCodec_
? вы видите 18 символов? - person pskink   schedule 22.07.2017AMediaCodec_signalEndOfInputStream
вlibmediandk.so
android-26
. но в заголовочном файле этот метод помечен как доступный вышеandroid-21
- person Fantasy_RQG   schedule 22.07.2017AMediaCodec_signalEndOfInputStream
- по вашему мнению, он должен быть вNdkMediaCodec.h
, но это не так - поэтому я понятия не имею, как вы смогли скомпилировать свой код - person pskink   schedule 22.07.2017Android/sdk/ndk-bundle/sysroot/usr/include/media/NdkMediaCodec.h
. На платформах заголовокandroid-26
также не содержитAMediaCodec_signalEndOfInputStream
, но символы можно найти в его файле lib - person Fantasy_RQG   schedule 22.07.2017--sysroot=
, поэтому здесь что-то не так (один указывает на/Users/rqg/Library/Android/sdk/ndk-bundle/platforms/android-21/arch-arm
второй на/Users/rqg/Library/Android/sdk/ndk-bundle/sysroot
- person pskink   schedule 22.07.2017arguments '-DANDROID_PLATFORM=android-21'
а если изменить на 26? - person pskink   schedule 22.07.2017java.lang.UnsatisfiedLinkError: dlopen failed: cannot find "libGLESv3.so" from verneed[5] in DT_NEEDED list for "/data/app/rqg.fantasy.pbotest-2/lib/arm/libnative-lib.so"
- person Fantasy_RQG   schedule 22.07.2017MediaCodec
для кодирования. Я просто хочу, чтобы все было сделано в ndk. - person Fantasy_RQG   schedule 22.07.2017