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.



  • @sierdzio Thanks man, it's working for me. This is a good solution provisionally.



  • Just for avoid mistakes I would like to have a clarification before try a new upload. In case of new version is needed to create a new release in the Android Console web site. Inside this release I upload the 32 version of apk with version number, for example, 1. Than I compile the same apk but with 64 bit libraries and increase the version number to 2. Now this "new" version have to be uploaded in the same new release session of the previous apk or I have to create a new release session specific for the 64 bit version?
    Thank you



  • Hi,
    I tried like Suppaman has described. I uploaded three versions of the APK to my Alpha Track.
    If I try to "Submit it", I don't know what the english text is. In German it is "ALPHVERSION EINFÜHREN".
    I get the Warning that I have to use "Android App Bundle". This is a Warning I can not Ignore. I can't submit the version to the Playstore.

    0_1560177142611_3c8e3ddd-dd79-433b-823f-7816e81b7f80-image.png

    Hope you can help me

    Sebastian


  • Qt Champions 2018

    @Grisu Did you do what "Warnungen" suggest you to do? What warnings are those?



  • I also followed Suppamans advice when trying to create internal test but was unable to get it to work:

    0_1560442631386_7d90239f-6f3b-4c1b-8932-79ec5dce0874-image.png
    0_1560442667209_ac35bff6-cc25-4019-9df1-e52a3dbcaa1d-image.png

    For the armeabi-v7a I get this warning

    0_1560443090201_4f1634a4-5506-4e42-a8c8-26c551cae056-image.png

    For arm64-v8a i get these

    0_1560443038515_ef451566-d981-4c34-8cfb-1547d96774f3-image.png

    So at least for me this does not seem to work. I have built these packages normally as before, only now adding the 64bit version as suggested. There are OpenSSL libraries bundled in the packages, 32bit version for 32bit apk and 64bit version for 64bit apk, if that matters anything.

    -Tuomo



  • Me too have same problems. It would be useful to have a setp by step guide from Qt team regarding how to bypass the Google Play warning without have the new App Bundle Apk. Final timeline date of 1 august is very close and after this date, winthout a solution, it will be impossible to upload new app made with Qt Creator...


Log in to reply
 

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