Android: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Restriction when using MinGW/Msys) |
||
Line 2: | Line 2: | ||
For general information about Qt 5 for Android, please visit the [[Qt5ForAndroid | wiki]] for that. | For general information about Qt 5 for Android, please visit the [[Qt5ForAndroid | wiki]] for that. | ||
N.B. | |||
* When using GCC toolchains on Windows (MinGW, Android NDK, etc.) take into account that there is a restrictions on a build path prefix length [https://bugreports.qt.io/browse/QTBUG-52242 QTBUG-52242]. | |||
* When using MSys shell you should not pass Unix-like paths in <tt>-prefix</tt> argument [https://bugreports.qt.io/browse/QTBUG-52675 QTBUG-52675] | |||
= Building Qt 5 for Android = | = Building Qt 5 for Android = |
Revision as of 13:15, 25 April 2016
These are build instructions for building Qt for Android on Linux or Mac OS X. For cross-compiling on Windows, this is currently possible under cmd.exe.
For general information about Qt 5 for Android, please visit the wiki for that.
N.B.
- When using GCC toolchains on Windows (MinGW, Android NDK, etc.) take into account that there is a restrictions on a build path prefix length QTBUG-52242.
- When using MSys shell you should not pass Unix-like paths in -prefix argument QTBUG-52675
Building Qt 5 for Android
These are the current build instructions to get to the point where you can deploy a Qt app to an Android device using Qt Creator.
- First of all you need an Android SDK.
- You can get the official SDK from Google.
- Run the android tool found at <path/to/sdk>/tools/android
- For Qt 5.6 or earlier: Install API levels 10, 11, 16 and 18 (you may need to check the "Obsolete" checkbox to see these in the SDK manager). Beginning with Qt 5.7, any API level >= 18 will work.
- Android API level 11 is required to build QtMultimedia.
- Android API level 18 is required to build QtBluetooth (from Qt 5.5 onwards).
- Android API level 10, 11 and 16 are required for QtBase.
- Note that this is only necessary for building Qt itself. You can build Qt applications against any API level you wish, As long as it is equal to or higher than 13.
- You also need an Android NDK: https://developer.android.com/tools/sdk/ndk/index.html
- Get Qt Creator 2.7.2 (or later): http://qt.io/download#qt-creator
- Get Qt 5:
git clone git://code.qt.io/qt/qt5.git qt5
cd qt5
perl init-repository
- Configure Environment Variables You need to set up environment variables for the following:
- $JAVA_HOME (e.g /usr/lib/jvm/java-6-openjdk-i386) You need a JDK (version 1.6+, required 32bit) and you should also have this in your PATH.
- Configure Qt and skip unsupported modules:
./configure -xplatform android-g++ -nomake tests -nomake examples -android-ndk <path/to/ndk> -android-sdk <path/to/sdk> -android-ndk-host <e.g. linux-x86_64> -android-toolchain-version <e.g. 4.8> -skip qttranslations -skip qtwebkit -skip qtserialport -skip qtwebkit-examples -no-warnings-are-errors
- Build. Then you can run:
make
- Start the Qt Creator you built earlier.
- Go into Tools-> Options -> Android and set the right paths to the Android SDK and NDK, etc. For example:
- Android SDK Location: /home/johnsmith/dev/android-sdk-linux
- Android NDK Location: /home/johnsmith/dev/android-ndk-r8e
- JDK Location: /usr/lib/jvm/java-6-openjdk-i386
- Add your newly built Qt version to Options -> Build & Run -> Qt Versions.
- At this point you should be able to create a project and configure it for the Android kit. In order to test, go into the Run settings for your project. Under Deploy Configuration, check the Use Qt libraries from local device option. Also select the Deploy local Qt libraries radio button.