blob: 645256651a9690834cd2691202ee081cb8755abb [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/
/*!
\page android-3rdparty-libs.html
\title Third-party Android Libraries
\brief Provides instructions to include third-party Android libraries in an application.
This guide describes how to include a Java-based third-party library in your
application package. There are many Java libraries which provide APIs that
may be useful to your application.
\section1 Prerequisites
This guide assumes that the \l{androiddeployqt} tool is used for constructing
the deployment package. When using Qt Creator for building and deploying,
androiddeployqt is used behind the scenes, so this also applies to
development with Qt Creator. Explaining how to access the Java APIs after
being included in the the project is not in the scope of this guide. For
more information, see \l{Customizing the Package Templates}.
\section1 Including a Library to an Android Project
The very first thing you need to do is to copy the library files into
your project. The contents of the library have to be copied without
modifications into the packaging directory, i.e. into the path set with
\l{qmake} variable \l{ANDROID_PACKAGE_SOURCE_DIR}. For more information, see
\l{Android Libraries}.
If you are using Qt Creator, you can quickly set up the packaging directory
structure by selecting \uicontrol Projects > \uicontrol Build >
\uicontrol {Build Android APK} > \uicontrol {Create Templates}. This creates
a directory for your \l{Customizing the Package Templates}{Android package customizations}.
Copy the library directory into \c {$ANDROID_PACKAGE_SOURCE_DIR/libs/}.
\section2 Adding a .jar or .aar Library
By default, Qt for Android uses can use \c .jar or \c .aar libraries that are
found in the path \c {$ANDROID_PACKAGE_SOURCE_DIR/libs/}. Qt has the following
rule in \c{build.gradle} file that is part of \l{Gradle files}{the Gradle files}
used by Android build:
\badcode
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
\endcode
\section1 Adding a Library Project
Having a library called \c{CustomLibrary}, similar to the previous approach,
copy the library project to your packaging directory
\c{$ANDROID_PACKAGE_SOURCE_DIR/libs/}, then create a file \c{settings.gradle}
with the following content:
\badcode
include ':libs:CustomLibrary'
\endcode
Then, add the dependency to \c{build.gradle} file inside the \c{dependencies}
block:
\badcode
dependencies {
implementation project(":libs:CustomLibrary")
}
\endcode
For more information on adding libraries to an Android project, see
\l{Android: Add build dependencies}{Add build dependencies Android documentation}.
\section1 Deployment
Once \l{Gradle} settings and the library files are all properly configured,
Qt for Android should be able to build your \c APK or \c AAB package with
your custom library.
*/