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

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.050097
First Submitted: 2018-11-22 19:15
Last Updated: 2019-06-28 00:13

Dependencies (19)

Sources (3)

Latest Comments

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

Tazmain commented on 2018-10-01 20:37

under /opt/android-ndk/toolchains/ I have llvm-3/6 and llvm-3.5

Tazmain commented on 2018-10-01 20:37

I am still getting : + cd qtbase + /tmp/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.2/qtbase/configure -top-level -confirm-license -opensource -silent -prefix /opt/android-qt5/armeabi-v7a -docdir /opt/android-qt5/armeabi-v7a/doc -xplatform android-clang -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-21 Creating qmake... Done. Info: creating super cache file /tmp/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.2/.qmake.super Project ERROR: Cannot run target compiler '/opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++'. Output: =================== sh: /opt/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/clang++: No such file or directory =================== Maybe you forgot to setup the environment? ==> ERROR: A failure occurred in build(). Aborting...

hipersayan_x commented on 2018-09-24 15:24

Damn, i want to get into Android programming as quick as possible but the virtual camera development is getting me crazy :$

Martchus commented on 2018-09-24 15:06

Not a lof of news since my comment from 2018-08-31 21:57. But OpenSSL already works fine. I gave up using the ECM toolchain file for CMake and created my own CMake module to invoke androiddeployqt. It is much simpler and less buggy.

Regarding the file dialog: I actually managed to open Android's native file dialog and even to pass the 'content://' URL it returns to an std::fstream object. Oh, wait ... that relies on an libstdc++ specific extension allowing to pass a native file descriptor. So that will certainly break unless I figure out a better way to open 'content://' URLs with std::fstreams. So it seems like I really have to postpone using libc++.

hipersayan_x commented on 2018-09-24 14:50

Let's see what this will break on my side when recompiling :-)

Hopefully nothing :P, i still need to test in my side too.

I would just like to note that it is possible to disable only the mapbox-gl plugin

Will try. Just wanted to get the thing working so i take the easier path.

Anyway some updates with the openssl package? i see you get arm64-v8a and armeabi-v7a working.

Martchus commented on 2018-09-24 14:05

So you switched from GCC/libstdc++ to Clang/libc++. Let's see what this will break on my side when recompiling :-)

But seriously, I also thought about doing this change since libc++ is now the recommended standard lib under Android. However, I'll also have to rebuild some other dependencies so I'm going to postpone it for now.

I see that you also disabled the entire Qt Location module. I would just like to note that it is possible to disable only the mapbox-gl plugin (this stuff takes too much time to compile anyways): https://github.com/Martchus/PKGBUILDs/blob/master/qt5/android-arm64-v8a/PKGBUILD#L23

hipersayan_x commented on 2018-09-06 14:36

Patch applied, it may work now.

Martchus commented on 2018-09-06 07:49

@brettgilio You need to apply https://aur.archlinux.org/cgit/aur.git/tree/0034-Fix-build-error-related-to-glibc-2.28-and-stat.patch?h=mingw-w64-qt5-base

@hipersayan_x Could you add this patch? It is also present in the regular Qt 5 package.

brettgilio commented on 2018-09-06 04:28

I am getting this error.

+ cd qtbase + /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/configure -top-level -confirm-license -opensource -silent -prefix /opt/android-qt5/5.11.1/armeabi-v7a -docdir /opt/android-qt5/5.11.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-21 Creating qmake... In file included from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:94: /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 /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/mkspecs/linux-g++/qplatformdefs.h:75, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.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 /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:94: /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 /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/mkspecs/linux-g++/qplatformdefs.h:75, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:42: /usr/include/bits/statx.h:36:8: note: previous definition of ‘struct statx’ struct statx ^~~~~ /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:110: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 /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/../../src/corelib/tools/qbytearray.h:52, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/qbytearray.h:1, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/../../src/corelib/tools/qstring.h:49, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/qstring.h:1, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/../../src/corelib/io/qiodevice.h:50, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/qiodevice.h:1, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/../../src/corelib/io/qfiledevice.h:43, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/include/QtCore/qfiledevice.h:1, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/src/corelib/io/qfile.h:44, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/src/corelib/io/qfilesystemengine_p.h:54, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.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, ^~~~~~~~~ /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/src/corelib/io/qfilesystemengine_unix.cpp:115: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 /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.1/qtbase/mkspecs/linux-g++/qplatformdefs.h:75, from /home/brettg/.build/android-qt5-armeabi-v7a/src/qt-everywhere-src-5.11.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: *** [Makefile:423: qfilesystemengine_unix.o] Error 1

Martchus commented on 2018-08-31 21:57

Found the cause for the runtime issues with my app. Let's say it is not a good idea to apply the usual CLI argument parsing under Android :-) But the actual crash was caused by bundling the wrong C++ standard libraries.


So if anybody is interested, here's an adjusted version of this package and some further libraries (OpenSSL, Kirigami, libiconv) for Android: https://github.com/Martchus/PKGBUILDs

The following things already seem to work:

  • Building APK's with qmake and CMake/ECM
  • Deploying a qmake project using Qt Creator
  • Using Qt Network, Qt Sensors, Qt Svg, Qt Quick, Qt Quick Controls 1, Qt Quick Controls 2
  • Using OpenSSL directly, eg. to do some AES crypto
  • Make an HTTPS request via QNetworkAccessManager and OpenSSL
  • Using Kirigami
  • Opening files via std::fstream.

Other things doesn't seem to be supported very well:

  • Deploying a CMake project using Qt Creator
  • I was hoping FileDialog would open Android's native file selection. However, it only shows some custom, horribly to use dialog.
  • The issue mentioned in my previous comment.
  • Not having to specify an insane number of CMake variables. Eg. I couldn't figure out why I had to set Qt5Core_DIR when using the ECM toolchain file.

(Note that I have actually only tested the arm64-v8a variant. But I don't think it makes a difference.)

So the next step is further testing with the other architectures. Providing some wrapper scripts similar to mingw-w64-cmake would be nice, too.


If anybody wants binaries for arm64-v8a: https://martchus.no-ip.biz/repo/arch/ownstuff/os/x86_64
Note that the repo misses some dependencies like the SDK/NDK. That's due to license issues (at least I'm not 100 % sure whether I'm allowed to redistribute).