- 
    
Bug
 - 
    Resolution: Fixed
 - 
    
P2: Important
 - 
    None
 - 
    5.15.2
 - 
    None
 - 
    macOS 11.3, Android NDK 21e
 
- 
        
 - 
        2023wk26FOQtforAndroid
 
I am building an Android application with cmake. Cmake is run with the following parameters:
ANDROID_ABI=armeabi-v7a NDK_ROOT=$HOME/android-ndk-r21e ANDROID_PLATFORM=28 SDK_ROOT=$HOME/Library/Android/sdk ANDROID_BUILD_TOOLS_REV=28.0.3 cmake .. -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_PREFIX_PATH=$HOME/Qt/$QT_VER/android \ -DCMAKE_ANDROID_NDK=$NDK_ROOT \ -DCMAKE_TOOLCHAIN_FILE=$NDK_ROOT/build/cmake/android.toolchain.cmake \ -DANDROID_ABI=$ANDROID_ABI \ -DANDROID_PLATFORM=$ANDROID_PLATFORM \ -DANDROID_SDK=$SDK_ROOT \ -DANDROID_BUILD_TOOLS_REV=$ANDROID_BUILD_TOOLS_REV \ -DSTORE_FILENAME=$STORE_FILENAME \ -DSTORE_USERNAME=$STORE_USERNAME \ -DSTORE_PASSWORD=$STORE_PASSWORD
In CMakeLists file I have added a custom target to run androiddeployqt
        add_custom_target(pack COMMAND ${androiddeployqt_ROOT_PATH}/bin/androiddeployqt
            --input android_deployment_settings.json
            --output ${CMAKE_BINARY_DIR}/android-build
            --android-platform ${ANDROID_PLATFORM}
            --gradle
            --release
            --sign ${STORE_FILENAME} ${STORE_USERNAME}
            --storepass ${STORE_PASSWORD})
Generating the APK with the above command gives an error about zipalign not found. I can solve this error by changing manually Qt5AndroidSupport.cmake in Qt 5 installation such that the following line is added when android_deployment_settings.json.in file is created
"sdkBuildToolsRevision": "@ANDROID_BUILD_TOOLS_REV@"
With this change the APK is generated and signed but cannot be installed on the device. Also, the AndroidManifest.xml file does not contain the correct permissions and I don't find a way for providing a custom manifest file.
When instead of androiddeployqt I am using
cmake --build . --target apk
the debug APK is generated and can be installed and run on the device. The manifest file is the same as for androiddeployqt