Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

androiddeployqt and new Google Play requirement



  • First of all, thank you for your product, Qt is awesome :) I wish all frameworks would have so good documentation, support for everything and work so well.

    Unfortunately I have a problem and would be very grateful if you guys could help me.
    As you probably know, Starting from August 2019 Google Play requires from developers to make support for both: arm64-v8a and armv7. They provided steps how to do it by using NDK:
    https://developer.android.com/distribute/best-practices/develop/64-bit
    I could not find a description how to use androiddeployqt for APK with more than one architectures. Currently I am able to build and prepare valid APKs for both of these architectures, but I dont have an idea how to make one APK with both of them

    I know that the APK is just a ZIP file, so I was wondering if I can just add a new directory with the second architecture in the /lib/ path, but when I compared these two APKs I realized, that the manifest is also different and unfortunatelly it is only one for all of the architectures and there is a lot of differences.

    I also tried to add an additional --input parameter for the androiddeployqt command, but it looks like the tool does not support it and always takes the last of the given inputs.

    Moreover as a desperate try, I added an additional architecture to the build.grant as it is in the NDK description:

    android{    
        defaultConfig {
           ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'
        }
        ... THE REST 
    }
    

    but it changed nothing...

    Here is the deploy command I have used:

    androiddeployqt --input $BUILD_DIR/armv7/src/$APP_NAME/android-lib$APP_NAME.so-deployment-settings.json --input $BUILD_DIR/arm64_v8a/src/$APP_NAME/android-lib$APP_NAME.so-deployment-settings.json --output \"$DEPLOY_DIR\" --name $APP_NAME --deployment bundled --android-platform android-$TARGET_ANDROID_SDK_LEVEL --jdk /usr/lib/jvm/default-java --gradle
    

    Did anyone try to make it work? I cannot find anything on this topic in the Internet. Does anyone know how to prepare this APK with 2 architectures by using androiddeployqt? Or maybe there is some other way I can prepare this APK in a fast way?

    Best Regards and thanks in advance for your help


  • Lifetime Qt Champion

    Hi @JohnAmadis,

    there has been several discussions recently, e.g. https://forum.qt.io/topic/102833/android-this-release-is-not-compliant-with-the-google-play-64-bit-requirement-how

    I'm not completely sure about the outcome, but you might find some inspirations.

    Regards



  • Thank you very much, I will check that


  • Moderators

    @JohnAmadis said in androiddeployqt and new Google Play requirement:

    I could not find a description how to use androiddeployqt for APK with more than one architectures. Currently I am able to build and prepare valid APKs for both of these architectures, but I dont have an idea how to make one APK with both of them

    AFAIK its not necessary to bundle the different archs in a single APK.
    You can also upload them separately to the Play Store, which also has the benefit of smaller APK sizes to download.



  • @raven-worx said in androiddeployqt and new Google Play requirement:

    the

    I searched for this now and it seems that you are right. That solves my problem, thanks you a lot! The description from the email was misleading and I was sure that I have to do it in one APK. Even it makes more sense :)


Log in to reply