I am trying to build native-codec NDK sample with my own Android.mk and Application.mk instead of gradle. With every architecture I try I get either of the following two errors:
signal.h header file has error?
ndk-build clean && ndk-build
[x86_64] Clean : native-codec-jni [x86_64]
[x86_64] Clean : stdc++ [x86_64]
[x86_64] Compile++ : native-codec-jni <= native-codec-jni.cpp
In file included from /home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/linux/signal.h:21:0,
from /home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:43,
from /home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/sys/select.h:35,
from /home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/unistd.h:34,
from /home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:31:
/home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/asm/signal.h:101:20: error: expected ';' at end of member declaration
#define sa_handler _u._sa_handler
^
/home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:86:18: note: in expansion of macro 'sa_handler'
sighandler_t sa_handler;
^
/home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/asm/signal.h:101:22: error: expected unqualified-id before '.' token
#define sa_handler _u._sa_handler
^
/home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:86:18: note: in expansion of macro 'sa_handler'
sighandler_t sa_handler;
^
/home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/asm/signal.h:102:24: error: expected ')' before '.' token
#define sa_sigaction _u._sa_sigaction
^
/home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include/signal.h:87:12: note: in expansion of macro 'sa_sigaction'
void (*sa_sigaction)(int, struct siginfo*, void*);
^
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp: In function 'void doCodecWork(workerdata*)':
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:45:76: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'ssize_t {aka int}' [-Wformat=]
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
^
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:95:9: note: in expansion of macro 'LOGV'
LOGV("input buffer %zd", bufidx);
^
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:45:76: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'int' [-Wformat=]
#define LOGV(...) __android_log_print(ANDROID_LOG_VERBOSE, TAG, __VA_ARGS__)
^
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:143:13: note: in expansion of macro 'LOGV'
LOGV("unexpected info code: %zd", status);
^
make: *** [/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/obj/local/x86_64/objs/native-codec-jni/native-codec-jni.o] Error 1
the libmediandk.so file is never found.
[x86] Clean : native-codec-jni [x86]
[x86] Clean : stdc++ [x86]
[x86] Compile++ : native-codec-jni <= native-codec-jni.cpp
[x86] Compile++ : native-codec-jni <= looper.cpp
[x86] StaticLibrary : libstdc++.a
[x86] SharedLibrary : libnative-codec-jni.so
/home/c/Android/Sdk/ndk-bundle/toolchains/x86-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld: error: cannot find -lmediandk
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:94: error: undefined reference to 'AMediaCodec_dequeueInputBuffer'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:98: error: undefined reference to 'AMediaCodec_getInputBuffer'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:99: error: undefined reference to 'AMediaExtractor_readSampleData'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:105: error: undefined reference to 'AMediaExtractor_getSampleTime'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:108: error: undefined reference to 'AMediaCodec_queueInputBuffer'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:109: error: undefined reference to 'AMediaExtractor_advance'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:115: error: undefined reference to 'AMediaCodec_dequeueOutputBuffer'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:129: error: undefined reference to 'AMediaCodec_releaseOutputBuffer'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:137: error: undefined reference to 'AMediaCodec_getOutputFormat'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:138: error: undefined reference to 'AMediaFormat_toString'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:139: error: undefined reference to 'AMediaFormat_delete'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:172: error: undefined reference to 'AMediaExtractor_seekTo'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:173: error: undefined reference to 'AMediaCodec_flush'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:161: error: undefined reference to 'AMediaCodec_stop'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:162: error: undefined reference to 'AMediaCodec_delete'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:163: error: undefined reference to 'AMediaExtractor_delete'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:225: error: undefined reference to 'AAssetManager_fromJava'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:225: error: undefined reference to 'AAssetManager_open'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:225: error: undefined reference to 'AAsset_openFileDescriptor'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:237: error: undefined reference to 'AMediaExtractor_new'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:240: error: undefined reference to 'AMediaExtractor_setDataSourceFd'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:247: error: undefined reference to 'AMediaExtractor_getTrackCount'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:275: error: undefined reference to 'AMediaFormat_delete'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:253: error: undefined reference to 'AMediaExtractor_getTrackFormat'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:254: error: undefined reference to 'AMediaFormat_toString'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:257: error: undefined reference to 'AMEDIAFORMAT_KEY_MIME'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:257: error: undefined reference to 'AMediaFormat_getString'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:263: error: undefined reference to 'AMediaExtractor_selectTrack'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:264: error: undefined reference to 'AMediaCodec_createDecoderByType'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:265: error: undefined reference to 'AMediaCodec_configure'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:273: error: undefined reference to 'AMediaCodec_start'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:310: error: undefined reference to 'ANativeWindow_release'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:321: error: undefined reference to 'ANativeWindow_release'
/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/jni/native-codec-jni.cpp:324: error: undefined reference to 'ANativeWindow_fromSurface'
collect2: error: ld returned 1 exit status
make: *** [/home/c/Downloads/android-ndk-master2/MyApplication/app/src/main/obj/local/x86/libnative-codec-jni.so] Error 1
Below are my Android.mk and Application.mk files.
Android.mk:LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS += -std=c++11
LOCAL_CFLAGS += -UNDEBUG
LOCAL_LDLIBS := -lmediandk
LOCAL_LDLIBS += -OpenMAXAL
LOCAL_LDLIBS += -llog
CC=/home/c/Downloads/Openglxmlfour/arm-linux-androideabi/bin/arm-linux-androideabi-gcc
CXX=/home/c/Downloads/Openglxmlfour/arm-linux-androideabi/binarm-linux-androideabi-g++
LOCAL_MODULE := native-codec-jni # name your module here.
LOCAL_SRC_FILES := native-codec-jni.cpp looper.cpp
LOCAL_C_INCLUDES=/home/c/Android/Sdk/ndk-bundle/platforms/android-21/arch-arm/usr/include
include $(BUILD_SHARED_LIBRARY)
Application.mk
NDK_TOOLCHAIN_VERSION := 4.9
APP_ABI := x86
Please let me know if I am doing something. I am working on the errors in the native-codec-jni.cpp file. Thank you