Hi all,
Using NDK r10e (on OS X Yosemite), I can successfully compile the androidEmptyExample, however, as soon as I run it, the app crashes with:
07-07 17:25:09.329 2419-2419/cc.openframeworks.androidEmptyExample D/dalvikvm﹕ Trying to load lib /data/app-lib/cc.openframeworks.androidEmptyExample-2/libOFAndroidApp.so 0x429ba918
07-07 17:25:09.344 2419-2419/cc.openframeworks.androidEmptyExample E/dalvikvm﹕ dlopen("/data/app-lib/cc.openframeworks.androidEmptyExample-2/libOFAndroidApp.so") failed: dlopen failed: cannot locate symbol "sigemptyset" referenced by "libOFAndroidApp.so"...
07-07 17:25:09.344 2419-2419/cc.openframeworks.androidEmptyExample W/dalvikvm﹕ Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcc/openframeworks/OFAndroid;
07-07 17:25:09.344 2419-2419/cc.openframeworks.androidEmptyExample D/AndroidRuntime﹕ Shutting down VM
07-07 17:25:09.344 2419-2419/cc.openframeworks.androidEmptyExample W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41f7d700)
07-07 17:25:09.354 2419-2419/cc.openframeworks.androidEmptyExample E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "sigemptyset" referenced by "libOFAndroidApp.so"...
at java.lang.Runtime.loadLibrary(Runtime.java:362)
at java.lang.System.loadLibrary(System.java:525)
at cc.openframeworks.OFAndroid.<clinit>(OFAndroid.java:1038)
at cc.openframeworks.androidEmptyExample.OFActivity.onCreate(OFActivity.java:18)
at android.app.Activity.performCreate(Activity.java:5372)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
at android.app.ActivityThread.access$700(ActivityThread.java:159)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
Note: no changes have been made to any project settings. I simply followed the instructions on GitHub for android.
Also: the github instructions point to using NDK r9d, which means switching GCC to 4.8 and PLATFORM_CFLAGS to c++11 in config.android.default.mk
. However, this leads to:
/Users/mustafa/Development/Android/android-ndk-r9d/toolchains/arm-linux-androideabi-4.8/prebuilt/darwin-x86_64/lib/gcc/arm-linux-androideabi/4.8/include/stdint.h:9:26: fatal error: stdint.h: No such file or directory
# include_next <stdint.h>
Using NDK r10b (GCC 4.8 and c++11), compile fails with:
../../../addons/ofxAndroid/src/ofxAndroidSoundStream.cpp: In member function 'int ofxAndroidSoundStream::androidOutputAudioCallback(JNIEnv*, jobject, jshortArray, jint, jint)':
../../../addons/ofxAndroid/src/ofxAndroidSoundStream.cpp:261:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(out_float_buffer.size()!=bufferSize*numChannels){
^
../../../libs/boost/lib/android/armeabi-v7a/libboost_filesystem.a(path.o):path.cpp:function boost::filesystem::path::m_erase_redundant_separator(unsigned int): error: undefined reference to 'std::__throw_out_of_range_fmt(char const*, ...)'
../../../libs/boost/lib/android/armeabi-v7a/libboost_filesystem.a(path.o):path.cpp:function boost::filesystem::path::remove_trailing_separator(): error: undefined reference to 'std::__throw_out_of_range_fmt(char const*, ...)'
../../../libs/boost/lib/android/armeabi-v7a/libboost_filesystem.a(path.o):path.cpp:function boost::filesystem::path::remove_filename(): error: undefined reference to 'std::__throw_out_of_range_fmt(char const*, ...)'
../../../libs/boost/lib/android/armeabi-v7a/libboost_filesystem.a(path.o):path.cpp:function boost::filesystem::path::begin() const: error: undefined reference to 'std::__throw_out_of_range_fmt(char const*, ...)'
../../../libs/poco/lib/android/armeabi-v7a/libPocoFoundation.a(Thread.o):Thread.cpp:function Poco::ThreadImpl::runnableEntry(void*): error: undefined reference to 'sigemptyset'
../../../libs/poco/lib/android/armeabi-v7a/libPocoFoundation.a(Thread.o):Thread.cpp:function Poco::ThreadImpl::runnableEntry(void*): error: undefined reference to 'sigaddset'
../../../libs/poco/lib/android/armeabi-v7a/libPocoFoundation.a(Thread.o):Thread.cpp:function Poco::ThreadImpl::runnableEntry(void*): error: undefined reference to 'sigaddset'
../../../libs/poco/lib/android/armeabi-v7a/libPocoFoundation.a(Thread.o):Thread.cpp:function Poco::ThreadImpl::runnableEntry(void*): error: undefined reference to 'sigaddset'
../../../libs/poco/lib/android/armeabi-v7a/libPocoFoundation.a(Thread.o):Thread.cpp:function _GLOBAL__sub_I_Thread.cpp: error: undefined reference to 'sigemptyset'
../../../libs/poco/lib/android/armeabi-v7a/libPocoFoundation.a(Thread.o):Thread.cpp:function _GLOBAL__sub_I_Thread.cpp: error: undefined reference to 'sigaddset'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigfillset'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(armcap.o):armcap.c:function OPENSSL_cpuid_setup: error: undefined reference to 'sigdelset'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'signal'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function read_string_inner: error: undefined reference to 'tcsetattr'
../../../libs/openssl/lib/android/armeabi-v7a/libcrypto.a(ui_openssl.o):ui_openssl.c:function open_console: error: undefined reference to 'tcgetattr'
collect2: error: ld returned 1 exit status
make[1]: *** [libs/armeabi-v7a/libOFAndroidApp.so] Error 1
make: *** [Debug] Error 2
:examples:android:androidEmptyExample:compileDebugOF FAILED
Any help would be greatly appreciated.
Thanks.