OF + Android?!

Hi,

just saw this:

http://www.flickr.com/photos/kylemcdonald/4636699390/

Does anyone (Kyle?!) have any more information?!

OF + Android would be over-awesome :slight_smile:

Thanks,

Snoogie

haha, that’s photo of Arturo who has been working on this recently…
It’s not complete yet but it will be forthcoming :wink:

Do you have any more infos about that?

Like what OS Version you will need, if there are any repos or beta versions lying around somewhere?

I can’t await it!

just started yesterday. opengl is mostly working and freetype/freeimage should work but haven’t had time to try them. will upload something as soon as it’s more usable. don’t know exactly what’s the minimum required version. do you know what’s the most common one?

As Android is upwards (does that word even exist?) compatible I think that 1.5 would be a good start. Some early models which are widespread won’t support never version than 1.5/1.6.

I also believe that Android 1.5 has all of the important features (I have the nehe opengl examples running on my Android with 1.5) that are essential for of.

Awesome work btw!

:roll:

have just uploaded a first pre-release. There’s instructions on how to setup everything here:

http://www.openframeworks.cc/setup/android-eclipse

this is not an official release yet, i haven’t even tested with a real phone.

i think the compatibility settings of the projects are higher than 1.5, but not really sure so if you find how to lower the requirements or any other problem/enhacement, please post here to be able to solve it before releasing. Also if some part of the instructions results confusing please tell me so i can change it.

  • whats working:

  • all graphics (fonts/drawBitmapString doesn’t work except with r4 of the ndk)

  • events (no keyboard) including multitouch. fist touch is the mouse

  • ofxDirList, ofxNetwork, ofxVectorMath, ofxXmlSettings

  • Poco, so all the poco based addons should work

  • ofToDataPath is working with a really ugly hack. i’m copying all the resources of the application to the sdcard in a folder with the name of the app from java, then pointing ofToDataPath there.

  • what’s not working yet:

  • audio: seems hard to get something usable, since you need to pass through java to get a buffer callback, it will be slooow, for what i’ve read lags of 300ms

  • video: there seems to be a version of gstreamer but hasn’t been updated in almost a year

  • the rest of the official addons except for 3dModelLoader should be easy to port, just haven’t had time

have fun!!

Arturo,

I love you :slight_smile: !

OKay, lets get serious again, as I am on nightshift today and I don’t have my Samsung-USB-cable with me I will test the stuff tomorow and post results.

Cheers,

Snoogie

PS. I am on 1.5 so I will try to get that work somehow.

EDIT:

  1. One thing I would like to mention is that there should be added instructions on how to create an emunlator. Something like this:

To create an emulator you need to install the fitting packge first. Just click on the “Available Packages” ?tab? the SDK Platform for the version you like.
Once that is done you can create a new virtual device. Just select a name, the target and a size for the virtual sd-card.

  1. There is a typo in the section where you explain how to add the openframeworks project the first time:

The first project we need to import is the OF source code, press browse and in the folder where youÂ’ve uncompressed OF go to libs/openFrameworks you will see the openFrameworks project in the list. Press Finish to import it.

Besides that, I don’t see a project there. All I get is :No projects are found to import.

hey thanks

i’ve updated the package, the eclipse project should be there now. also added your description for the emulator install.

Okay, just to clear something up – you’re right, audio is slow, but the Java callback has nothing to do with it. The performance is a function of the drivers for the audio interfaces on the device. Apparently performance can be as good as about 40ms, but yes, on some devices can top 300ms, which is pretty awful. You could bypass the Java callback, but you’d get the same result – and likewise, I’m told even under the best circumstances, the Java callback would add only a couple of microseconds. I have some tips on fixing timing jitter, though … can talk to y’all separately about that. :wink:

I think because of this, one likely application for Android dev will be finding a custom board and sort of building our own multimedia reference platform, at least in the long term.

Hi Arturo,

I don’t know if you have tested this but the projects won’t work under linux.

It seems like some files are not found.

  
Description	Resource	Path	Location	Type  
'GLboolean' does not name a type	glu.h	/ofLibs/glu/include_android	line 157	C/C++ Problem  
'GLenum' has not been declared	glu.h	/ofLibs/glu/include_android	line 162	C/C++ Problem  
'GLenum' has not been declared	glu.h	/ofLibs/glu/include_android	line 165	C/C++ Problem  
'GLenum' has not been declared	glu.h	/ofLibs/glu/include_android	line 172	C/C++ Problem  
'GLenum' has not been declared	glu.h	/ofLibs/glu/include_android	line 176	C/C++ Problem  
'GLint' does not name a type	glu.h	/ofLibs/glu/include_android	line 169	C/C++ Problem  
'GLint' does not name a type	glu.h	/ofLibs/glu/include_android	line 178	C/C++ Problem  
'GLint' does not name a type	glu.h	/ofLibs/glu/include_android	line 179	C/C++ Problem  
'GLint' does not name a type	ofImage.h	/openFrameworks/graphics	line 19	C/C++ Problem  
'GLint' has not been declared	glu.h	/ofLibs/glu/include_android	line 168	C/C++ Problem  
'GLint' has not been declared	ofTexture.h	/openFrameworks/graphics	line 77	C/C++ Problem  
'GLint' has not been declared	ofTexture.h	/openFrameworks/graphics	line 78	C/C++ Problem  
'GLvoid' has not been declared	glu.h	/ofLibs/glu/include_android	line 171	C/C++ Problem  
'GLvoid' has not been declared	glu.h	/ofLibs/glu/include_android	line 177	C/C++ Problem  
expected ';' before '*' token	ofTrueTypeFont.h	/openFrameworks/graphics	line 79	C/C++ Problem  
expected initializer before '*' token	glu.h	/ofLibs/glu/include_android	line 160	C/C++ Problem  
expected initializer before '*' token	glu.h	/ofLibs/glu/include_android	line 161	C/C++ Problem  
GL/glu.h: No such file or directory	ofConstants.h	/openFrameworks/utils	line 101	C/C++ Problem  
GL/glut.h: No such file or directory	ofAppGlutWindow.h	/openFrameworks/app	line 15	C/C++ Problem  
GLee.h: No such file or directory	ofConstants.h	/openFrameworks/utils	line 100	C/C++ Problem  
ISO C++ forbids declaration of 'GLuint' with no type	ofTrueTypeFont.h	/openFrameworks/graphics	line 79	C/C++ Problem  
ofArduino.h: No such file or directory	ofMain.h	/openFrameworks	line 15	C/C++ Problem  
ofSerial.h: No such file or directory	ofMain.h	/openFrameworks	line 14	C/C++ Problem  
ofSoundPlayer.h: No such file or directory	ofMain.h	/openFrameworks	line 33	C/C++ Problem  
ofSoundStream.h: No such file or directory	ofMain.h	/openFrameworks	line 32	C/C++ Problem  
ofVideoGrabber.h: No such file or directory	ofMain.h	/openFrameworks	line 38	C/C++ Problem  
ofVideoPlayer.h: No such file or directory	ofMain.h	/openFrameworks	line 39	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 106	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 116	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 159	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 227	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 287	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 300	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 314	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 327	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 444	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 469	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 495	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 518	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 582	C/C++ Problem  
comparison between signed and unsigned integer expressions	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 629	C/C++ Problem  
Invalid project path: Include path not found (/usr/include/ffmpeg).	openFrameworks		pathentry	Path Entry Problem  
Invalid project path: Include path not found (/usr/include/hal).	openFrameworks		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/fmodex/inc).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/fmodex/inc).	openFrameworks		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/freeimage/include).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/freetype/include_macosx/freetype2).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/freetype/include_macosx/freetype2/freetype).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/freetype/include_macosx/freetype2/freetype/config).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/freetype/include_macosx/freetype2/freetype/internal).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/freetype/include/freetype2/freetype/internal).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/GLee/include).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/portaudio/include).	openFrameworks		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/rtAudio/include).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/rtAudio/include).	openFrameworks		pathentry	Path Entry Problem  
Invalid project path: Include path not found (ofLibs/unicap/include).	openFrameworks		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks/app).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks/communication).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks/events).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks/graphics).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks/sound).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks/utils).	ofAddons		pathentry	Path Entry Problem  
Invalid project path: Include path not found (openframeworks/video).	ofAddons		pathentry	Path Entry Problem  
unused variable ‘loadOkay’	ofxXmlSettings.cpp	/ofAddons/ofxXmlSettings/src	line 659	C/C++ Problem  
  

I did everything that was explained.
I am on Ubuntu 10.4 at the moment but will test Windows tomorrow.
Have you tried all OS’s?

Cheers,
Snoogie

i have tried only under linux, but it shouldn’t matter. it seems like it doesn’t find some search path, perhaps you have some environment var wrong, or i left a var hardcoded in any of the projects.

also note that there’s several targets for different platforms, you need to build the android one and build first OF, the addons and then the examples.

can you post the output before the errors to see how gcc is being called, it should be something like:

arm-eabi-g++ -I"…

Hi Arturo,

here is the console output:

http://pastebin.com/2zRn5VyL

It seems like there are missing some includes for the core.

I tried to build the android outputs first.

Here is a screenshot of the includes:

http://img3.imageshack.us/img3/5016/bildschirmfotoh.png

As you can see, he tries to find gleeh.h and GL/glu.h

Cheers,

Snoogie

it seems it’s detecting not detecting the android platform and it’s trying to compile for linux. can you try to change line 31 in ofConstants.h this:

  
#elif defined (ANDROID)  
	#define TARGET_ANDROID  
	#define TARGET_OPENGLES  
#else  
	#define TARGET_LINUX  
#endif  
  

with

  
  
  
#else  
	#define TARGET_ANDROID  
	#define TARGET_OPENGLES  
#endif  

i will take a look later to see why it’s detecting the wrong platform but that should work

Okay, I think I figured out why I get the errors:

The whole time I was working with a virtual device that was created for version 1.5. I changed that to 1.6, still the same errors.
After creating a new virtual device for 2.1, I was able to at least start the compile, now I got others errors.

while compiling ofAppRunner.cpp:

  
Building file: ../app/ofAppRunner.cpp  
Invoking: GCC C++ Compiler  
arm-eabi-g++ -DANDROID -I"/home/brandt/Downloads/Android/android-ndk-r4-crystax/build/platforms/android-4/arch-arm/usr/include/" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/openFrameworks/app" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/openFrameworks/events" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/openFrameworks/graphics" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/openFrameworks/utils" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/openFrameworks" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/glu/include_android" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/freetype/include" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/freetype/include/freetype2" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/FreeImage/include" -I"/home/brandt/Downloads/Android/of_preRelease_v0062_android_FAT/libs/poco/include" -O3 -Wall -c -nostdlib -fno-rtti -fno-short-enums -s -MMD -MP -MF"app/ofAppRunner.d" -MT"app/ofAppRunner.d" -o"app/ofAppRunner.o" "../app/ofAppRunner.cpp"  
../app/ofAppRunner.cpp:25:33: error: ofAppAndroidWindow.h: No such file or directory  
../app/ofAppRunner.cpp: In function 'void ofSetupOpenGL(int, int, int)':  
../app/ofAppRunner.cpp:43: error: expected type-specifier before 'ofAppAndroidWindow'  
../app/ofAppRunner.cpp:43: error: cannot convert 'int*' to 'ofAppBaseWindow*' in assignment  
../app/ofAppRunner.cpp:43: error: expected ';' before 'ofAppAndroidWindow'  
make: *** [app/ofAppRunner.o] Fehler 1  
  

IT seems like ofAppAndroidWindow.h is missing. I will investigate that further now

it seems like it’s missing the search path for the ofxAndroid folder, something like:

  
${workspace_loc:ofAddons/ofxAndroid/src}  

Hi~ thanks for providing this amazing tool! i’ve followed the instructions to setup my OF+Android. it seems everything goes fine. but when i run the examples, say, the imageExample, it says: “The application androidImageExample(process cc.openframeworks)has stopped unexpectedly. Please try again”. As shown below:

i have the bikers.jpg under res/raw
Could anybody help me with this?

plus, i just find this opencv for android:
http://billmccord.github.com/OpenCV-Android/
would it be possible to include this one in the OF project?

there is a problem with eclipse renaming some projects when importing them. i’ve already fixed it but cannot upload right now. will change it later and post when it’s done.

It should be fixed now. I’'ve removed the other platfoms targets from the eclipse projects in case it was confusing. now there’s only the android targets. be sure to compile both Debug and Release for openFrameworks and the addons before compiling the examples