Package Details: android-armv7a-eabi-qt5 5.13.0-2

Git Clone URL: https://aur.archlinux.org/android-armv7a-eabi-qt5.git (read-only)
Package Base: android-armv7a-eabi-qt5
Description: Qt 5 for Android
Upstream URL: https://www.qt.io
Licenses: GPL3, LGPL
Groups: android-qt5
Submitter: hipersayan_x
Maintainer: hipersayan_x
Last Packager: hipersayan_x
Votes: 17
Popularity: 0.024453
First Submitted: 2018-11-22 19:15
Last Updated: 2019-07-23 21:24

Dependencies (18)

Sources (3)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 9 Next › Last »

Martchus commented on 2018-08-31 13:36

I created a simple CMakeLists.txt for Qt's accelbuddle example and it works also when using CMake.

So the runtime crash I mentioned in my previous comment is definitely only caused by my own code or the use of Qt Quick Controls 2, Kirigami or OpenSSL.

However, with the latest version of extra-cmake-modules I ran into another compile issue: The JSON file for androiddeployqt is invalid (see https://phabricator.kde.org/D11776).

Martchus commented on 2018-08-14 08:45

@hipersayan_x No. As a start I would simply create a PKGBUILD for additional libraries and even the final APK. So when building a new version of Qt, I'll also rebuild those packages and at least know that the build still works. Not sure about automated testing of the runtime. That would require starting the Android emulator and clicking around in the app. It would be something for openQA, but implementing such tests and an Android emulator backend would be a lot of work. Likely there's already an easier solution out there. But so far I'm stuck with the problem that my app doesn't even launch.

BTW, that are some log lines I've got with adb:

W linker  : /data/data/org.martchus.passwordmanager/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: unused DT entry: type 0xf arg 0x8d98
W linker  : /data/data/org.martchus.passwordmanager/qt-reserved-files/plugins/platforms/android/libqtforandroid.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Gui.so: unused DT entry: type 0xf arg 0x5a9af
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Gui.so: unsupported flags DT_FLAGS_1=0x81
I Qt      : qt started
W linker  : /data/data/org.martchus.passwordmanager/qt-reserved-files/plugins/bearer/libqandroidbearer.so: unused DT entry: type 0xf arg 0x16c6
W linker  : /data/data/org.martchus.passwordmanager/qt-reserved-files/plugins/bearer/libqandroidbearer.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Network.so: unused DT entry: type 0xf arg 0x1402b
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Network.so: unsupported flags DT_FLAGS_1=0x81
I QtCore  : Start
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Widgets.so: unused DT entry: type 0xf arg 0x6cd4d
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Widgets.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5QuickControls2.so: unused DT entry: type 0xf arg 0x864b
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5QuickControls2.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Quick.so: unused DT entry: type 0xf arg 0x4b159
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Quick.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unused DT entry: type 0xf arg 0x31c21
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Quick.so: unused DT entry: type 0xf arg 0x4b159
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Quick.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unused DT entry: type 0xf arg 0x31c21
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5QuickTemplates2.so: unused DT entry: type 0xf arg 0x23ea0
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5QuickTemplates2.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unused DT entry: type 0xf arg 0x31c21
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Quick.so: unused DT entry: type 0xf arg 0x4b159
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Quick.so: unsupported flags DT_FLAGS_1=0x81
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unused DT entry: type 0xf arg 0x31c21
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libQt5Qml.so: unsupported flags DT_FLAGS_1=0x81
I art     : Background sticky concurrent mark sweep GC freed 10369(1182KB) AllocSpace objects, 3(60KB) LOS objects, 50% free, 2024KB/3MB, paused 1.974ms total 143.783ms
I art     : Do partial code cache collection, code=6KB, data=29KB
I art     : After code cache collection, code=6KB, data=29KB
I art     : Increasing code cache capacity to 128KB
I art     : Compiler allocated 4MB to compile void org.qtproject.qt5.android.bindings.QtLoader.startApp(boolean)
W art     : Suspending all threads took: 15.521ms
I art     : Background partial concurrent mark sweep GC freed 12414(1152KB) AllocSpace objects, 21(428KB) LOS objects, 39% free, 2MB/4MB, paused 17.472ms total 351.455ms
I art     : Background sticky concurrent mark sweep GC freed 11919(1210KB) AllocSpace objects, 20(476KB) LOS objects, 33% free, 2MB/4MB, paused 2.415ms total 262.185ms
I art     : Background partial concurrent mark sweep GC freed 10895(970KB) AllocSpace objects, 18(488KB) LOS objects, 40% free, 2MB/4MB, paused 1.179ms total 105.831ms
W gralloc_ranchu: Gralloc pipe failed
D         : HostConnection::get() New Host Connection established 0x76f2a752a0, tid 3741
D         : HostConnection::get() New Host Connection established 0x76f2a75120, tid 3764
I OpenGLRenderer: Initialized EGL, version 1.4
D OpenGLRenderer: Swap behavior 1
W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
D OpenGLRenderer: Swap behavior 0
W linker  : /data/app/org.martchus.passwordmanager-1/lib/arm64/libpasswordmanager.so: is missing DT_SONAME will use basename as a replacement: "libpasswordmanager.so"
W         : (null):0 ((null)): exit app 0
D         : HostConnection::get() New Host Connection established 0x77001b2ca0, tid 3761

So I'm actually using the 64-bit ARM version. There are a lot of linker warnings, but I also get these when compiling and running the Accel Bubble example which runs fine despite the warnings. Unfortunately the log doesn't really give me a clear error message. Maybe I should test with a simpler CMake-based app first (no Kirigami and OpenSSL).

hipersayan_x commented on 2018-08-14 04:00

@spac, it may be possible (if Google did not removed the API), try setting ANDROID_MINIMUM_PLATFORM=16.
@Martchus, are you using some CI to test the builds?

Martchus commented on 2018-08-13 14:33

@spac Please format the output.

BTW: I now tested with a simple qmake-based example project and it actually runs. Unfortunately I couldn't fix the runtime issues with my project using CMake, ECM, OpenSSL and Kirigami so far.

spac commented on 2018-08-13 13:58

Since Qt 5.11 requires Android 5 as a minimum, is it possible to recompile the version 5.10.1 which works with android 4.x.

I try the following

git clone https://aur.archlinux.org/android-qt5-armeabi-v7a.git cd android-qt5-armeabi-v7a git checkout a65482538ca6 makepkg

but it shows the error almost immediately. Is it possible to fix it? Error: ==> Making package: android-qt5-armeabi-v7a 5.10.1-1 (Mon Aug 13 16:53:39 2018) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Retrieving sources... -> Found qt-everywhere-src-5.10.1.tar.xz -> Found geoservices.pro.patch -> Found JavaScriptCore.pri.patch -> Found JavaScript.Platform.h.patch ==> Validating source files with md5sums... qt-everywhere-src-5.10.1.tar.xz ... Passed geoservices.pro.patch ... Passed JavaScriptCore.pri.patch ... Passed JavaScript.Platform.h.patch ... Passed ==> Extracting sources... -> Extracting qt-everywhere-src-5.10.1.tar.xz with bsdtar ==> Starting prepare()... ==> Removing existing $pkgdir/ directory... ==> Starting build()... + cd qtbase + /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/configure -top-level -confirm-license -opensource -silent -prefix /opt/android-qt5/5.10.1/armeabi-v7a -docdir /opt/android-qt5/5.10.1/armeabi-v7a/doc -xplatform android-g++ -nomake tests -nomake examples -android-ndk /opt/android-ndk -android-sdk /opt/android-sdk -android-ndk-host linux-x86_64 -android-toolchain-version 4.9 -skip qttranslations -skip qtserialport -no-warnings-are-errors -no-pkg-config -qt-zlib -qt-freetype -android-arch armeabi-v7a -android-ndk-platform android-16 -skip qtconnectivity Creating qmake... /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:101:12: error: 'int renameat2(int, const char, int, const char, unsigned int)' was declared 'extern' and later 'static' [-fpermissive] static int renameat2(int oldfd, const char oldpath, int newfd, const char newpath, unsigned flags) ^~~~~~~~~ In file included from /usr/include/c++/8.2.0/cstdio:42, from /usr/include/c++/8.2.0/ext/string_conversions.h:43, from /usr/include/c++/8.2.0/bits/basic_string.h:6391, from /usr/include/c++/8.2.0/string:52, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/../../src/corelib/tools/qbytearray.h:52, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/qbytearray.h:1, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/../../src/corelib/tools/qstring.h:49, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/qstring.h:1, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/../../src/corelib/io/qiodevice.h:50, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/qiodevice.h:1, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/../../src/corelib/io/qfiledevice.h:43, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/include/QtCore/qfiledevice.h:1, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfile.h:44, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_p.h:54, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:43: /usr/include/stdio.h:164:12: note: previous declaration of 'int renameat2(int, const char, int, const char, unsigned int)' extern int renameat2 (int oldfd, const char *old, int newfd, ^~~~~~~~~ In file included from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:106: /usr/include/linux/stat.h:56:8: error: redefinition of 'struct statx_timestamp' struct statx_timestamp { ^~~~~~~~~~~~~~~ In file included from /usr/include/sys/stat.h:446, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/mkspecs/linux-g++/qplatformdefs.h:75, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:42: /usr/include/bits/statx.h:25:8: note: previous definition of 'struct statx_timestamp' struct statx_timestamp ^~~~~~~~~~~~~~~ In file included from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:106: /usr/include/linux/stat.h:99:8: error: redefinition of 'struct statx' struct statx { ^~~~~ In file included from /usr/include/sys/stat.h:446, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/mkspecs/linux-g++/qplatformdefs.h:75, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:42: /usr/include/bits/statx.h:36:8: note: previous definition of 'struct statx' struct statx ^~~~~ /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:107:12: error: 'int statx(int, const char, int, unsigned int, statx)' was declared 'extern' and later 'static' [-fpermissive] static int statx(int dirfd, const char pathname, int flag, unsigned mask, struct statx statxbuf) ^~~~~ In file included from /usr/include/sys/stat.h:446, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/mkspecs/linux-g++/qplatformdefs.h:75, from /tmp/makepkg/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.10.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:42: /usr/include/bits/statx.h:87:5: note: previous declaration of 'int statx(int, const char, int, unsigned int, statx)' int statx (int dirfd, const char restrict path, int __flags, ^~~~~ make: ** [qfilesystemengine_unix.o] Error 1 .==> ERROR: A failure occurred in build(). Aborting...

hipersayan_x commented on 2018-07-18 02:50

@Martchus, that's a lot of progress. Sadly I will be probably not able to test this until the end of this year, only tried building with it and worked, but I'm not aware about possible run time bugs. Maybe someone is already working with these packages?

Martchus commented on 2018-07-17 14:28

I now was able to build OpenSSL, libiconv, Kirigami and some other CMake-based projects for Android. I also managed to configure Qt 5 to load OpenSSL dynamically.

However, so far my app crashes on startup so I need to further investigate before adding any changes here. The packages I've created so far are available at: https://github.com/Martchus/PKGBUILDs/tree/more_android_packages


Just some thoughts about using Qt for Android and the ECM toolchain file:

  • Is anybody using this as well? For me this wasn't very straight forward to use. A lot of variables need to be set and some of them are even redundant to CMake's regular variables (eg. path to the SDK). Maybe we could create a android-cmake package similar to mingw-w64-cmake to simplify this?

  • It is also very annoying that androiddeployqt tries to load some Java stuff during the build. Maybe this could be packaged as well somehow. I also had to use Java 8 because Java 9 and 10 are apparently to new.

  • Btw, here is the ECM toolchain-based build script I've come up with so far: https://github.com/Martchus/PKGBUILDs/blob/more_android_packages/passwordmanager/android-arm64-v8a/PKGBUILD
    (the Password Manager is usually my demo app for stuff like this.)

hipersayan_x commented on 2018-07-05 00:38

@Martchus, Great also thanks!

Martchus commented on 2018-07-04 22:21

@hipersayan_x I have created OpenSSL packages, at least for two of the archs: https://aur.archlinux.org/packages/?K=android-openssl

When I have finished my tests, I can send a PR (let's see when I find time to build Qt and some demo app using OpenSSL).

hipersayan_x commented on 2018-07-03 16:15

@Martchus, nope I'm quite busy right now, if you have your OpenSSL packages ready upload them to the AUR. Also, I've uploaded the scripts to my github, send me a PR with the changes to support OpenSSL or any other change.

https://github.com/hipersayanX/pkgbuild-android-qt5