Extra libraries to deploy with the target.
This property was introduced in Qt 6.0.
Note: This property is used only if targeting the Android platform.
A list of external libraries that will be copied into your application's libs folder and loaded on start-up. This can be used, for instance, to enable OpenSSL in your application. For more
information, see Adding OpenSSL Support for Android.
When adding extra libraries from the build tree of your project, it's also necessary to add dependency relations between library and the application target. Using the following project structure may cause an issue, when deploying an apk:
qt_add_executable(MyApp main.cpp)
set_target_properties(MyApp PROPERTIES
QT_ANDROID_EXTRA_LIBS
${CMAKE_CURRENT_BINARY_DIR}/libMyService_${ANDROID_ABI}.so
)
# MyService library doesn't have any relations with MyApp
qt_add_library(MyService service.cpp)
This leads to uncertainty whether MyService library will be available before the deployment of MyApp or not. The easiest solution is adding MyService library to the MyApp dependencies:
add_dependencies(MyApp MyService)
When adding per-architecture libraries to a multi-abi project, list all their paths explicitly, rather than rely on variables like CMAKE_ANDROID_ARCH_ABI to dynamically compute the paths.
Prefer:
set(libs
${CMAKE_CURRENT_BINARY_DIR}/libA_x86so
${CMAKE_CURRENT_BINARY_DIR}/libA_x86_64.so
${CMAKE_CURRENT_BINARY_DIR}/libA_arm64-v8a.so
${CMAKE_CURRENT_BINARY_DIR}/libA_armeabi-v7a.so
)
set_target_properties(MyApp PROPERTIES QT_ANDROID_EXTRA_LIBS ${libs})
# When targeting precompiled libs
target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC libA_${ANDROID_ABI})
over:
set_target_properties(MyApp PROPERTIES
QT_ANDROID_EXTRA_LIBS
${CMAKE_CURRENT_BINARY_DIR}/libA_${CMAKE_ANDROID_ARCH_ABI}.so)
As part of the free Business evaluation, we offer a free welcome call for companies, to talk about your requirements, and how the Felgo SDK & Services can help you. Just sign up and schedule your call.
Sign up now to start your free Business evaluation: