Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Android: This release is not compliant with the Google Play 64-bit requirement. How?
Forum Updated to NodeBB v4.3 + New Features

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

Scheduled Pinned Locked Moved Solved Mobile and Embedded
26 Posts 12 Posters 11.4k Views 5 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    bogong
    wrote on last edited by
    #1

    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?

    1 Reply Last reply
    1
    • G Offline
      G Offline
      Galbarad
      wrote on last edited by
      #2

      received same alert right now(
      any solutions?

      B 1 Reply Last reply
      0
      • G Galbarad

        received same alert right now(
        any solutions?

        B Offline
        B Offline
        bogong
        wrote on last edited by bogong
        #3

        @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 ... :-)

        1 Reply Last reply
        2
        • B Offline
          B Offline
          bogong
          wrote on last edited by bogong
          #4

          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?

          1 Reply Last reply
          2
          • B Offline
            B Offline
            bogong
            wrote on last edited by bogong
            #5

            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.

            1 Reply Last reply
            1
            • B Offline
              B Offline
              bogong
              wrote on last edited by
              #6

              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?

              J.HilkJ 1 Reply Last reply
              0
              • B bogong

                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?

                J.HilkJ Offline
                J.HilkJ Offline
                J.Hilk
                Moderators
                wrote on last edited by
                #7

                @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 :)


                Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                Q: What's that?
                A: It's blue light.
                Q: What does it do?
                A: It turns blue.

                B 1 Reply Last reply
                1
                • sierdzioS Offline
                  sierdzioS Offline
                  sierdzio
                  Moderators
                  wrote on last edited by
                  #8

                  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.

                  (Z(:^

                  1 Reply Last reply
                  6
                  • J.HilkJ J.Hilk

                    @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 :)

                    B Offline
                    B Offline
                    bogong
                    wrote on last edited by
                    #9

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

                    1 Reply Last reply
                    0
                    • deleted57D Offline
                      deleted57D Offline
                      deleted57
                      wrote on last edited by
                      #10

                      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?

                      sierdzioS 1 Reply Last reply
                      0
                      • deleted57D deleted57

                        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?

                        sierdzioS Offline
                        sierdzioS Offline
                        sierdzio
                        Moderators
                        wrote on last edited by
                        #11

                        @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.

                        (Z(:^

                        J.HilkJ 1 Reply Last reply
                        6
                        • J Offline
                          J Offline
                          julien_stalder_vysual
                          wrote on last edited by
                          #12

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

                          1 Reply Last reply
                          0
                          • deleted57D Offline
                            deleted57D Offline
                            deleted57
                            wrote on last edited by
                            #13

                            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

                            1 Reply Last reply
                            0
                            • G Offline
                              G Offline
                              Grisu
                              wrote on last edited by
                              #14

                              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

                              jsulmJ 1 Reply Last reply
                              0
                              • G Grisu

                                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

                                jsulmJ Offline
                                jsulmJ Offline
                                jsulm
                                Lifetime Qt Champion
                                wrote on last edited by
                                #15

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

                                https://forum.qt.io/topic/113070/qt-code-of-conduct

                                1 Reply Last reply
                                0
                                • T Offline
                                  T Offline
                                  Tuomo Pelkonen
                                  wrote on last edited by
                                  #16

                                  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

                                  M 1 Reply Last reply
                                  1
                                  • deleted57D Offline
                                    deleted57D Offline
                                    deleted57
                                    wrote on last edited by
                                    #17

                                    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...

                                    M 1 Reply Last reply
                                    0
                                    • S Offline
                                      S Offline
                                      shob
                                      wrote on last edited by
                                      #18

                                      We set different version code for the armv7, arm64 and x86 apks. We've been able to successfully upload the armv7 and arm64 apks to the same Google Play store item without receiving any warning messages.

                                      When we upload the x86 apk also along with the arm apks, we get a warning message for the 64bit requirement. I believe this is because of the missing x86_64 apk which is the 64bit variant for x86.

                                      I just noticed that https://bugreports.qt.io/browse/QTBUG-47672 is marked as resolved in Qt5.13.

                                      1 Reply Last reply
                                      0
                                      • sierdzioS sierdzio

                                        @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.

                                        J.HilkJ Offline
                                        J.HilkJ Offline
                                        J.Hilk
                                        Moderators
                                        wrote on last edited by
                                        #19

                                        hi @sierdzio

                                        I'm working on this now, too, release state, finally !!

                                        And I wanted to implement your version/build control

                                        Question if I may, why do you go the way over QMAKE_SUBSTITUTES instead of using the predefined variable ANDROID_VERSION_CODE ?

                                        Is it only to reduce the number of AndroidManifest.xml files down to 1, instead of 1 per build architecture ?


                                        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                                        Q: What's that?
                                        A: It's blue light.
                                        Q: What does it do?
                                        A: It turns blue.

                                        sierdzioS 1 Reply Last reply
                                        0
                                        • J.HilkJ J.Hilk

                                          hi @sierdzio

                                          I'm working on this now, too, release state, finally !!

                                          And I wanted to implement your version/build control

                                          Question if I may, why do you go the way over QMAKE_SUBSTITUTES instead of using the predefined variable ANDROID_VERSION_CODE ?

                                          Is it only to reduce the number of AndroidManifest.xml files down to 1, instead of 1 per build architecture ?

                                          sierdzioS Offline
                                          sierdzioS Offline
                                          sierdzio
                                          Moderators
                                          wrote on last edited by
                                          #20

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

                                          hi @sierdzio

                                          I'm working on this now, too, release state, finally !!

                                          Congrats :-)

                                          And I wanted to implement your version/build control

                                          Question if I may, why do you go the way over QMAKE_SUBSTITUTES instead of using the predefined variable ANDROID_VERSION_CODE ?

                                          Is it only to reduce the number of AndroidManifest.xml files down to 1, instead of 1 per build architecture ?

                                          Yes - I used to have separate manifests but it was very tedious to maintain them all.

                                          I also use QMAKE_SUBSTITUTES to keep a single version number, application name, the domain etc. - all info needed on all platforms (and also to update version string in doxygen configuration file).

                                          But definitely it's not a requirement to use QMAKE_SUBSTITUTES, just a convenience.

                                          (Z(:^

                                          J.HilkJ 1 Reply Last reply
                                          1

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved