Android App Development include LDAP on MAC OS X
-
I can compile the application and push it to the virtual device. But i get the error:
W System.err: Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: library "liblber-2-devel.so.0" not found
This file is contained in the lib folder of my cross compiled library. I read a little bit and tried to load the library during runtime with the QT Object: QLibrary and the function load. But it didnt work.
this is the part of my .pro file
ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap.so ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber.so ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r.so #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber-2-devel.so.0 #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber-2-devel.so.0.0.0 #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap-2-devel.so.0 #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap-2-devel.so.0.0.0 #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r-2-devel.so.0 #ANDROID_EXTRA_LIBS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r-2-devel.so.0.0.0 LIBS += -L$$PWD/lib/compiled/openldap-i686-linux-android_16/lib/ -lldap INCLUDEPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include DEPENDPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include PRE_TARGETDEPS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap.a LIBS += -L$$PWD/lib/compiled/openldap-i686-linux-android_16/lib/ -llber INCLUDEPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include DEPENDPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include PRE_TARGETDEPS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/liblber.a LIBS += -L$$PWD/lib/compiled/openldap-i686-linux-android_16/lib/ -lldap_r INCLUDEPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include DEPENDPATH += $$PWD/lib/compiled/openldap-i686-linux-android_16/include PRE_TARGETDEPS += $$PWD/lib/compiled/openldap-i686-linux-android_16/lib/libldap_r.a
Library loading at the beginning of the main method.
QLibrary ldap("ldap"); QLibrary ldap_r("ldap_r"); QLibrary lber("lber"); if(!ldap.load() || !lber.load() || !ldap_r.load()){ qDebug() << "Failed loading library"; }
The libraries that are contained in the lib folder are listed above
-
IIRC, android doesn't support library versioning so ensure that you don't have a symbolic link copied to your package but a copy of the library.
-
@SGaist said in Android App Development include LDAP on MAC OS X:
IIRC, android doesn't support library versioning so ensure that you don't have a symbolic link copied to your package but a copy of the library.
I removed the links from the libraries, deleted the links and renamed the lib to its original name, but the error still appears...
-
Which one ? The missing symbol or the dlopen error ?
-
Why are you dlopening the library on Android rather than linking to it ?
-
@mkmp29 said in Android App Development include LDAP on MAC OS X:
this does the the library...
Can you rephrase that please ? I don't understand what it means at all.
-
@SGaist said in Android App Development include LDAP on MAC OS X:
@mkmp29 said in Android App Development include LDAP on MAC OS X:
this does the the library...
Can you rephrase that please ? I don't understand what it means at all.
If I get it right, he means that he links the LDAP library. That library, however, uses dlopen internally to access yet another library.
-
Then this stackoverflow thread might help.