Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Using a Qt based library in an android app



  • Hi,

    i have a library which is based on Qt 5. I built it for armeabi to get a shared library.
    The Anroid application has an jni part which involves the Library. Therefore i have a folder "lib" in my project root. There the library libmylib.so is placed in armeabi/libmylib.so.
    In the folder "jni" contained in the app root i have a folder libmylib in which an Android.mk is placed:
    @
    LOCAL_PATH := $(call my-dir)

    include $(CLEAR_VARS)

    LOCAL_MODULE := mylib
    LOCAL_SRC_FILES := ../../lib/armeabi/libmylib.so
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/inc

    include $(PREBUILT_SHARED_LIBRARY)
    @

    The Android.mk placed in jni contains
    @
    LOCAL_SHARED_LIBRARIES :=
    mylib
    $(call import-module, mylib)
    @

    Running ndk-build works fine and copies the libraries to libs/armeabi.
    In my MainActivity i call
    @System.loadLibrary("mylib")@
    This all works good, but i also need Qt5Core.so, which is involved the same way. But while loading Qt5Core the application crashes with
    @UnsatisfiedLinkError: Unknown Failure@

    Is there a better way to get the qt libraries to the android device? Next to the fact that a library project does not generate the necessary libraries, i needed to turn the library into a small application which was deployed to the device. Now Qt created a folder android-builds which contained all those libraries.
    I copied these as necessary to my android application, but as said, as soon as i try to load qt5core it crashes.

    Is it possible to build mylib such that it contains all required information and i only need to add one library?

    Thank you!

    Kind Regards!



  • no ideas how to build a standalone library?



  • I'm also attempting the same thing - hopefully someone can enlighten both of us.

    dualfaces, I made some headway by statically compiling Qt. If you don't need to create a QGuiApplication object, this might be enough for you. I'm stuck on creating the QGuiApplication object because it can't find the android platform library, even though I have packaged it into my APK.



  • Dear friends!

    I found this situation in my project and did't find any solutions.

    Something new in this case?



  • Same issue here!

    Is it a bug of libQt5Core.so?? Maybe we could include the code files in ours libraries instead of reference libQt5Core...


Log in to reply