SUMMARY Can't run OpenPGP on Android. QCA lib is searching for a plugin libqca-gnupg.so in crypto directory but Android does not copy subfolders from armeabi-v7a directory. Here is some issue discussed https://github.com/gradle/gradle/issues/2394 Can there be some settings that will tell library to look for a plugin in the directory where libqca-qt5 is located? And also main question is: Can OpenPGP work at all on Android, maybe it relies on some OS specific commands like gpg gpg2 and packages gnupg and no matter what it will not work on Android ? STEPS TO REPRODUCE 1. Cross compile QCA with command: cmake . -DCMAKE_SYSTEM_NAME=Android -DCMAKE_TOOLCHAIN_FILE=/opt/Android/Ndk/android-ndk-r20/build/cmake/android.toolchain.cmake -DQt5_DIR=/opt/Felgo/Felgo/android_armv7/lib/cmake/Qt5/ -DQt5Core_DIR=/opt/Felgo/Felgo/android_armv7/lib/cmake/Qt5Core/ -DQt5Test_DIR=/opt/Felgo/Felgo/android_armv7/lib/cmake/Qt5Test/ -DQt5Network_DIR=/opt/Felgo/Felgo/android_armv7/lib/cmake/Qt5Network/ -DANDROID_PLATFORM=android-29 -DCMAKE_INSTALL_PREFIX=/usr/local/android -DUSE_RELATIVE_PATHS=ON I'm using Felgo, but pure Qt should have the same result 2. Copy libraries into android/libs/armeabi-v7a within Qt project ls -la armeabi-v7a/ drwxr-xr-x 2 franki franki 4096 sty 25 18:18 crypto -rw-r--r-- 1 franki franki 3812452 sty 25 19:01 libqca-gnupg.so -rw-r--r-- 1 franki franki 674004 sty 25 19:01 libqca-logger.so -rw-r--r-- 1 franki franki 12997264 sty 25 18:18 libqca-qt5.so -rw-r--r-- 1 franki franki 1025504 sty 25 19:01 libqca-softstore.so drwxr-xr-x 3 franki franki 4096 sty 25 18:55 plugins drwxr-xr-x 3 franki franki 4096 sty 25 18:18 qca-qt5 3. Build Android APK, only files from armeabi-v7a will be included in package, no subdirectories OBSERVED RESULT QCA::isSupported("openpgp") = false EXPECTED RESULT QCA::isSupported("openpgp") = true SOFTWARE/OS VERSIONS Windows: macOS: Linux/KDE Plasma: Debian Buster, KDE 5.14.5 (available in About System) KDE Plasma Version: 5.14.5 KDE Frameworks Version: 5.54.0 Qt Version: 5.13.2 ADDITIONAL INFORMATION Please Help ;) Best Regards Marek
Looking at another project I have renamed libqca-gnupg.so into: file lib/armeabi-v7a/libplugins_crypto_libqca-gnupg.so lib/armeabi-v7a/libplugins_crypto_libqca-gnupg.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, BuildID[sha1]=140485303f05c8975f71f17a186f1265341a7b73, stripped And it is included in APK now, but still QCA::isSupported("openpgp") = false Is this because gnuPG is not available on Android ? Best Regards Marek