Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo



BogDan Vatra daminetreg Willy Gardiol
logo.png (9315 bytes)

Necessitas wiki home page!

What is it?

Necessitas is a community project led by BogDan Vatra which is born from the need to extend a great framework to support one of the most widespread mobile platform in the world.

The Qt framework ([http://qt.nokia.com/]) is a great Development Framework! It's multi-platform, complete, mature and bleeding-edge at the same time. With Qt you can write great applications for the desktop (Windows, Linux and Mac) and for the mobile world (tables, phones... Symbian, MeeGo, Maemo, Android, IOS, BlackBerry, WebOS...) and also in the embedded world. Qt is a C++ framework, which is a plus if you don't like Java that much.

Android... well, it does not need introductnios. The Google powered mobile system, based on Linux, it's both the most widespread and more open mobile environment available today.

Necessitas comes from the need of exploting the power and the multi-platform capabilities of the Qt framework on the Android world. It was born as a concept work which demonstrates the flexibility of Qt and, today, strives to become a fully working development solution for Android.

So, what?

Necessitas is the work of a few. Mainly, BogDan, and a few others. Everybody is invited to join our efforts and contribute.

The current status of the project is, albeit still in alpha, already encouraging. A few fully working apps have been released on the Google Play by various developers including some complex applications... Check them out... Both QML and QWidget based UIs are supported!

Not everything works, or at least not as expected, but a steady and committed work is done to improve every new release.

The main Qt framework works. QML works, QWidget (with the limitations of QWidget in the mobile world) works... QtWebkit works too... and QtMobility is partially working. QtLocation and QtSensors mostly works, while QtMoultimedia and QSound is, at the moment, still work in progress.

Ok, i am interested...

Are you a developer?

Do you already have a Qt application written for Symbian, Windows, Linux or any other Qt-supported platform? Great! Grab Necessitas and start porting it to Android too! You will find that's almost as easy as recompiling (ok, maybe not so easy, but...).

Do you want to develop a new application for Android but you don't like Java? Well, enjoy the leverage of C++ with the Qt framework! Or maybe you want to write a new app and ensure it will work on almost any mobile environment out there? You will find Android with Necessitas the best solution besides the Nokia-supported platforms.

Some details...

Necessitas uses the Android NDK. Basically, your Qt application is compiled as a dynamic library and a Java application wrapper is added to interface it with the Android enviroment. You don't have to worry, because everything is managed automatically by the Necessitas SDK. You just fire up Necessitas' own QtCreator, write your code, hit the deploy button and the magic will do itself.

So, what are you waiting for? Go check the [How to install Necessitas SDK] page! Or, if you are more into hacking and thinkering, you can also be brave and [Compile Qt framework] and of course also [Compile QtCreator]!

Don't forget to check the tutorial on [How to write Qt apps for Android]!

If you want to help us please check [Guidelines for contributions to Necessitas project] wiki page...


Wiki: Compile Qt framework
Wiki: Compile QtCreator
Wiki: Guidelines for contributions to Necessitas project
Wiki: How to install Necessitas SDK
Wiki: How to write Qt apps for Android

1 2 > >> (Page 1 of 2)

  • Anonymous

    Awesome! Great work! Thank you for your work and time spent!

    Last edit: daminetreg 2012-03-03
  • Rommel

    Hi: How do I include the android libraries to my Qt Project?

    I mean, for example access the GPS or clinometers?


    • daminetreg

      Currently the port of Qt Mobility isn't finished but should provide access to this elements. If you want to help the Qt mobility port you are welcome, however you can use gps and so on by doing your own JNI bindings to wait the Qt Mobility port, although if you do it, it could be cool that you integrate your work to the Qt Mobility port, because it would help others too.

    • Carlos Quiros
      Carlos Quiros

      Hi Rommel,

      Did you had any luck accessing the android libraries?

      I got stuck with activity.getSystemService(String serviceName)... How can I get the activity where QT is running from?

      Thanks in advance.

      • Rommel

        Hi Carlos:
        I'm sorry to say that I just quit trying, I was only experimenting with Necessitas, I'm not in a hurry or something. I'm not capable of doing the bindings by myself, so I will wait.
        Sorry for not been helpful :-S

  • Atul Sharma
    Atul Sharma

    Excellent work!!!
    Question - Can I embed flash content? If so how?

    • daminetreg

      It seems not possible for the moment, even if Qt Webkit works you won't get the flash plugin running on your device as a mozilla npapi plugin (supported by QtWebkit). Flash isn't open source, so it seems hard to me to port it for this use case.

  • M Greene
    M Greene

    "/home/mgreene/android-sdk-linux_x86" doesn't seem to be an Android SDK top folder - I keep getting this error message despite reinstalling SDK and necessitas several times. I am using Ubuntu, ant 1.8,OpenJDK, and installed in /opt/necessitas

    Last edit: M Greene 2011-03-18
    • daminetreg

      Did you follow the instructions [Setup Android SDK], because you need to update your sdk with the graphical manager included in it. :)

      Please don't open Qt Creator while SDK is installing.

      Last edit: daminetreg 2011-03-18
  • viny

    Just to point out an error in default build configuration, the shared libraries (included via Qt Creator Left Pane -> Projects -> Run -> Libraries -> PreBundled Libraries) names should not be "libLIBNAME.so" in libs.xml but only "LIBNAME".

  • turtlerace


    let me first thank you for this fabulous work. It is a pleasure to use it.
    I have a problem migrating an existing linux project to necessitas.
    The project consists of an executable and a static library (2 "subprojects")
    Everything compiles, a lib...a is created for the static library.
    However, when I try to deploy the app, necessitas tries to copy a lib...so to the device. This shared library, however, does not exist.

    Did I misconfigure something?

  • viny

    I also encountered the same issue as above (@turtlerace). I just did a temporary workaround by making a dummy lib...so for further processing :p and have successfully deployed my project after that :)
    I am also looking forward to proper solution for the above issue

  • turtlerace

    Thanks viny, splendid idea. I changed to shared linking only for this project which also works. But I want to go back to static when it will be possible.

  • BogDan Vatra
    BogDan Vatra

    Please open an issues about it, I'll fix it soon.

    Thank you !

  • viny

    I am having a problem in using custom imageformats qt-plugin in my qt-application-on-android. I am using a custom image format for performance issue and use custom imageformats plugin for this. On linux-x86 it works just fine by adding the plugin library path as
    and I can load the images properly in my application.

    I have tried the same way by adding the plugin-library path as above on android but it doesn't work. Pushing the libraries in default plugin path "/data/data/eu.licentia.necessitas.ministro/files/qt/plugins/imageformats" also didn't work.

    Since on android, we have to manually load Qt libraries also, so I tried manually loading the plugin library in QtApplication.java itself. It loads the plugin library successfully as seen in adb logcat, but still the images cannot shown in the application.

    Could someone give me some idea about how can I use custom Qt-plugin to work for my application to run on android successfully?

  • Steph Steph90
    Steph Steph90

    How can i use the android's API in my Necessitas's Project??

    • Wu Xiao
      Wu Xiao

      According to necessitas' source code, you can use QtAndroidBridge::m_javavm static variable pointing to the Dalvik JVM and JNI to use Android API.

  • Steve King
    Steve King

    I have an application with bundled libs, but when I try to deploy it the budled libs don't get loaded. The application output reports findLibrary fails for each of them and then the main application fails because the dependency fails. I haven't seen a demo of one working with bundled libs so any help would be appreciated.

1 2 > >> (Page 1 of 2)


Cancel   Add attachments