Android: This release is not compliant with the Google Play 64-bit requirement. How?



  • Hello all!
    I am not so experienced in Android (mostly I am developing for iOS/Macos) and I've got from Google this message 5 minutes ago ...

    Warning
    
    This release is not compliant with the Google Play 64-bit requirement
    
    The following APKs or App Bundles are available to 64-bit devices, but they only have 32-bit native code: 6.
    
    From August 1, 2019 all releases must be compliant with the Google Play 64-bit requirement.
    
    Include 64-bit and 32-bit native code in your app. Use the Android App Bundle publishing format to automatically ensure that each device architecture receives only the native code it needs. This avoids increasing the overall size of your app. Learn More
    

    Is there Android App Bundle publishing ability in Qt?



  • received same alert right now(
    any solutions?



  • @Galbarad This notice disappeared for me since I've built and published 3 version of *.apk for one release, one for x86, one for armeabi-v7a and one for arm64-v8a Will look on it further ... Started reading information about Android App Bundle publishing format. For me it's a little curious, because I've just started to develop for Android. Before it I thought iOS - pain ... I've been wrong about it ... :-)



  • This is what I found for the purpose of building Android App Bundle from command line. But how to connect it to Qt Creator builds - have no any clue ...

    This is application archive new architecture schema

    Briefly - it is the new format of application archive that is going to be delivered to Google Play that will include all-in-one instead of separated builds like now. It looks like very soon it's might be very critical in case of using Qt Creator for Android applications developing because it's totally changing schema of application directory structure and supplying it by libraries.

    Suggestions?



  • It's already reported in Qt Issue Tracker QTBUG-68202 But in this track - total silence more then one year. But! Google already announced 1 Aug 2019, it's mean less than 3 month for developing solution for this issue.



  • The fast solution (I am in very doubt that Qt Developers will solve it rapid) might be like a script that is gathering in one the data from different builds in special order. But I really don't know how to do it for Android. Is there Android/Qt professionals?


  • Moderators

    @bogong
    May be something you'll have to bring to the mailing list the actual qt developer are much more active over there then in this user based forum :)


  • Moderators

    This has been discussed on mailing list before.

    Uploading 3 different .apks works, is supported by Google, and solves the issue. Additional benefit is that your users will not have to download APK weighting 60+MB (that's 3x all Qt libraries, compiled for each architecture), but "just" 20MB instead. Everybody wins (except us poor developers who now have to produce 3 builds for each release...).

    That's why there is silence in QTBUG-68202 - it is not urgent to support the new bundles.



  • @J.Hilk Just sent. Will look on reply.



  • However is not very clear to me the procedre to upload multiple apk compiled with different libraries. I guess the documentation is this but I don't understand very well this point:

    Each APK must have a different version code, specified by the android:versionCode attribute.
    

    That's mean if I want to upload an app version in two configuration 32 and 64 bit I have to upload the first apk 32 bit with version code, example, 1 and than upload the same apk but 64 bit with version code 2?


  • Moderators

    @Suppaman said in Android: This release is not compliant with the Google Play 64-bit requirement. How?:

    However is not very clear to me the procedre to upload multiple apk compiled with different libraries. I guess the documentation is this but I don't understand very well this point:

    Each APK must have a different version code, specified by the android:versionCode attribute.
    

    That's mean if I want to upload an app version in two configuration 32 and 64 bit I have to upload the first apk 32 bit with version code, example, 1 and than upload the same apk but 64 bit with version code 2?

    Yes, exactly. This can be done automatically using QMAKE_SUBSTITUTES:

    .pro

    # Increment by 3!
    ITERATION=1
    
    android:contains(QT_ARCH, i386) {
          win32 {
                ITERATION = $$system("set /a $$ITERATION + 1")
            } else:unix {
                ITERATION = $$system("echo $(($$ITERATION + 1))")
            }
        manifest.input = $$PWD/AndroidManifest.xml.in
        manifest.output = $$PWD/i386/AndroidManifest.xml
        QMAKE_SUBSTITUTES += manifest
    
    }
    
    contains(ANDROID_TARGET_ARCH, arm64-v8a) {
        win32 {
            ITERATION = $$system("set /a $$ITERATION + 2")
        } else:unix {
            ITERATION = $$system("echo $(($$ITERATION + 2))")
        }
        manifest.input = $$PWD/AndroidManifest.xml.in
        manifest.output = $$PWD/arm64/AndroidManifest.xml
        QMAKE_SUBSTITUTES += manifest
    }
    
    contains(ANDROID_TARGET_ARCH, armeabi-v7a) {
        manifest.input = $$PWD/AndroidManifest.xml.in
        manifest.output = $$PWD/arm32/AndroidManifest.xml
        QMAKE_SUBSTITUTES += manifest
    }
    
    

    AndroidManifest.xml.in

    android:versionCode='"$${ITERATION}"'
    

    With this you only have to maintain a single AndroidManifest, and all builds will get separate version code. You just have to remember to bump ITERATION by 3 every time you want to upload a new version to Play Store.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.