I have been trying to get the Android version of OpenFrameworks up and running on my WinXP box for the last couple of days. Actually, I have quite enjoyed digging through the code but now I feel I must ask a few questions.
The thing is, I have come across a strange error that (seemingly) has to do with how the makefiles are generated. Consider the following excerpt:
f:/developer/android-ndk-r8e-windows-x86/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/arm-linux-androideabi-g++ -o libs/armeabi/libOFAndroidApp.so obj/androidRelease/src/main.o obj/androidRelease/src/testApp.o obj/androidRelease/addons/ofxAndroid/src/ofAppAndroidWindow.o obj/androidRelease/addons/ofxAndroid/src/ofxAndroidAccelerometer.o obj/androidRelease/addons/ofxAndroid/src/ofxAndroidGPS.o obj/androidRelease/addons/ofxAndroid/src/ofxAndroidLogChannel.o obj/androidRelease/addons/ofxAndroid/src/ofxAndroidSoundPlayer.o obj/androidRelease/addons/ofxAndroid/src/ofxAndroidSoundStream.o obj/androidRelease/addons/ofxAndroid/src/ofxAndroidUtils.o obj/androidRelease/addons/ofxAndroid/src/ofxAndroidVideoGrabber.o obj/androidRelease/addons/ofxAccelerometer/src/ofxAccelerometer.o obj/androidRelease/addons/ofxAndroid/libs/miniunzip/ioapi.o obj/androidRelease/addons/ofxAndroid/libs/miniunzip/miniunz.o obj/androidRelease/addons/ofxAndroid/libs/miniunzip/minizip.o obj/androidRelease/addons/ofxAndroid/libs/miniunzip/unzip.o obj/androidRelease/addons/ofxAndroid/libs/miniunzip/zip.o --sysroot=f:/developer/android-ndk-r8e-windows-x86/platforms/android-14/arch-arm/ -nostdlib -L"f:/developer/android-ndk-r8e-windows-x86/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi" -Wl,--fix-cortex-a8 -shared -Wl,--no-undefined ../../../libs/openFrameworksCompiled/lib/android/armeabi/libopenFrameworks.a ../../../libs/poco/lib/android/armeabi/libPocoNet.a ../../../libs/poco/lib/android/armeabi/libPocoXML.a ../../../libs/poco/lib/android/armeabi/libPocoFoundation.a ../../../libs/FreeImage/lib/android/armeabi/libfreeimage.a ../../../libs/freetype/lib/android/armeabi/libfreetype.a ../../../libs/glu/lib/android/armeabi/libGLU.a ../../../libs/tess2/lib/android/armeabi/libtess2.a ../../../libs/FreeImage/lib/android/armeabi ../../../libs/freetype/lib/android/armeabi ../../../libs/glu/lib/android/armeabi ../../../libs/openFrameworksCompiled/lib/android/armeabi ../../../libs/poco/lib/android/armeabi ../../../libs/tess2/lib/android/armeabi -lsupc++ -lz -lGLESv1_CM -llog -ldl -lm -lc f:/developer/android-ndk-r8e-windows-x86/sources/cxx-stl/gnu-libstdc++/4.6/libs/armeabi/libgnustl_static.a -lgcc
f:/developer/android-ndk-r8e-windows-x86/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ../../../libs/FreeImage/lib/android/armeabi: Permission denied
f:/developer/android-ndk-r8e-windows-x86/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ../../../libs/freetype/lib/android/armeabi: Permission denied
f:/developer/android-ndk-r8e-windows-x86/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ../../../libs/glu/lib/android/armeabi: Permission denied
f:/developer/android-ndk-r8e-windows-x86/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ../../../libs/openFrameworksCompiled/lib/android/armeabi: Permission denied
make[1]: Leaving directory `/f/developer/openFrameworks-master/examples/android/androidImageExample'
f:/developer/android-ndk-r8e-windows-x86/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ../../../libs/poco/lib/android/armeabi: Permission denied
f:/developer/android-ndk-r8e-windows-x86/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld.exe: error: cannot open ../../../libs/tess2/lib/android/armeabi: Permission denied
collect2: ld returned 1 exit status
make[1]: *** [libs/armeabi/libOFAndroidApp.so] Error 1
make: *** [AndroidRelease] Error 2
This is the code that breaks on my machine. Seems that the makefile is attempting to link to a folder instead of a file?
[tt]error: cannot open …/…/…/libs/FreeImage/lib/android/armeabi: Permission denied[/tt]
Can (1) someone confirm if this makefile snippet is indeed the cause of the problem, and (2) point out how it could be fixed? Makefiles really aren’t my strongest skill
Oh, and btw: I also came across other issues with those makefiles, thought that it would be a good thing to mention them all.
Firstly, the makefile will recognize my machine as a linux box. A workaround was posted by activeknowledge:
http://forum.openframeworks.cc/t/setting-up-android-openframeworks-in-windows7/8855/8
Secondly, when calling “cd” from the makefile, windows-style paths can break the makefile script :
A line like this will break the script:
[tt]cd F:\developer\openFrameworks-master\examples\android\androidEmptyExample; [/tt]
Simple workaround: use forward slashes in the Eclipse project -> C++ -> Environment settings.
Cheers,
Bjørn