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. What's the problem? android compile error
Forum Updated to NodeBB v4.3 + New Features

What's the problem? android compile error

Scheduled Pinned Locked Moved Solved Mobile and Embedded
19 Posts 13 Posters 14.7k Views 2 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.
  • E Offline
    E Offline
    Eddy
    wrote on 24 Apr 2019, 18:00 last edited by Eddy
    #6

    Hi Jay_M,

    Thanks for the solution! Now I can take the jump to Qt5.12.3 with my Android project

    I tested your workarounds and the only thing you have to do is step 3:

    3rd: go into theQT project/app's folder and edit the gradle.properties file... change the line to:
    
    androidBuildToolsVersion=28.0.3
    

    I tested on some test applications and also on a real world application
    You saved me a lot of time! Now you can save some time for your other projects with less tweaking ;-)

    Eddy

    Qt Certified Specialist
    www.edalsolutions.be

    N 1 Reply Last reply 14 Jun 2019, 11:08
    3
    • E Eddy
      24 Apr 2019, 18:00

      Hi Jay_M,

      Thanks for the solution! Now I can take the jump to Qt5.12.3 with my Android project

      I tested your workarounds and the only thing you have to do is step 3:

      3rd: go into theQT project/app's folder and edit the gradle.properties file... change the line to:
      
      androidBuildToolsVersion=28.0.3
      

      I tested on some test applications and also on a real world application
      You saved me a lot of time! Now you can save some time for your other projects with less tweaking ;-)

      Eddy

      N Offline
      N Offline
      nikich340
      wrote on 14 Jun 2019, 11:08 last edited by
      #7

      @Eddy if you have build-tools 28.0.3 downloaded. I just deleted build-tools 29.0.0 and downloaded 28.0.3 (and do not change build folder - it configures for the only one 28.0.3 version which I have).

      1 Reply Last reply
      2
      • E Offline
        E Offline
        Eddy
        wrote on 14 Jun 2019, 16:46 last edited by
        #8

        Hi Nikich,

        good find!

        I just tested with a new project and deleting the 29.0.0 folder upfront makes Qt Creator find the 28.0.3 folder automatically.

        Thanks for posting this back here ;-)

        Eddy

        Qt Certified Specialist
        www.edalsolutions.be

        1 Reply Last reply
        0
        • A Offline
          A Offline
          a.burks
          wrote on 15 Jun 2019, 20:54 last edited by
          #9

          I have a similar problem. I followed the instructions of the tutorial for android and opened the analog clock example to build, deploy and start the app in the Android emulator.

          I use Qt Creator for macOS with the newest suggested Qt versuin. I get following build errors:

          /Users/burks/Library/Android/android-ndk-r20/toolchains/x86-4.9/prebuilt/darwin-x86_64/lib/gcc/i686-linux-android/4.9.x/../../../../i686-linux-android/bin/ld: error: cannot find -lc++
          clang++: error: linker command failed with exit code 1 (use -v to see invocation)
          make: *** [libshadereffects.so] Error 1
          

          Some ideas, how to make a Qt app for Android running?

          1 Reply Last reply
          1
          • J Offline
            J Offline
            JohnAmadis
            wrote on 20 Jun 2019, 14:27 last edited by
            #10

            Hi,

            I have exactly the same issue. Google Play Console requires adaptation for android-28 and arm64-v8a
            from August 19, so QT developers cannot use r16b anymore and I have used NDK r20 instead. Unfortunatelly I received -lc++ library linking problem. I am not sure why, because the library is available in the expected path, and objdump returns correct armv7 architecture.

            To solve the issue with linking I just used android-ndk-19c version. But note, that the 19c contains some bug with support of spaces in the QRC paths, so for example I had to remove this from the QRC:

            make[1]: *** No rule to make target '/project/fonts/customfont/pobrano z /project/fonts/customfont/koikj.txt', needed by 'qrc_qml.cpp'.  Stop
            
            1 Reply Last reply
            0
            • A Offline
              A Offline
              Albertino
              wrote on 20 Jun 2019, 22:51 last edited by
              #11

              The error: cannot find -lc++ using ndk r20 can be solved like this:
              https://codereview.qt-project.org/c/qt/qtbase/+/264903/9/mkspecs/android-clang/qmake.conf#34

              For example to compile for android armv7 ndk r20, locate the file:
              C:\Qt\5.13.0\android_armv7\mkspecs\android-clang\qmake.conf
              and add the missing -nostdlib++
              for android x86 (i use this for emulator), locate the file:
              C:\Qt\5.13.0\android_x86\mkspecs\android-clang\qmake.conf

              For error: Execution failed for task ':compileDebugAidl'
              locate the file on your build directory, mine is: C:\dev_qt\experiments\build-test_qt_5_13_0_ARMv7-Release\android-build\gradle.properties and change androidBuildToolsVersion
              from: androidBuildToolsVersion=29.0.0
              to: androidBuildToolsVersion=28.0.3

              A Y 2 Replies Last reply 22 Jun 2019, 14:44
              5
              • A Albertino
                20 Jun 2019, 22:51

                The error: cannot find -lc++ using ndk r20 can be solved like this:
                https://codereview.qt-project.org/c/qt/qtbase/+/264903/9/mkspecs/android-clang/qmake.conf#34

                For example to compile for android armv7 ndk r20, locate the file:
                C:\Qt\5.13.0\android_armv7\mkspecs\android-clang\qmake.conf
                and add the missing -nostdlib++
                for android x86 (i use this for emulator), locate the file:
                C:\Qt\5.13.0\android_x86\mkspecs\android-clang\qmake.conf

                For error: Execution failed for task ':compileDebugAidl'
                locate the file on your build directory, mine is: C:\dev_qt\experiments\build-test_qt_5_13_0_ARMv7-Release\android-build\gradle.properties and change androidBuildToolsVersion
                from: androidBuildToolsVersion=29.0.0
                to: androidBuildToolsVersion=28.0.3

                A Offline
                A Offline
                a.burks
                wrote on 22 Jun 2019, 14:44 last edited by
                #12

                @Albertino Thank your very much. Now I can build and run the calculator example project with the emulator. That's very motivating. However I get many warnings in the log. Maybe the example projects are not optimized for Android. I will check the tutorial a hallo world project.

                I zygote  : Not late-enabling -Xcheck:jni (already on)
                W zygote  : Unexpected CPU variant for X86 using defaults: x86
                W System  : ClassLoader referenced unknown path:
                I QtCore  : Start
                W linker  : "/data/app/org.qtproject.example.calculator-LvUUU6gyNuONt6Duq8qL_A==/lib/x86/libQt5Gui.so" has unsupported flags DT_FLAGS_1=0x80
                W linker  : "/data/app/org.qtproject.example.calculator-LvUUU6gyNuONt6Duq8qL_A==/lib/x86/libQt5Widgets.so" has unsupported flags DT_FLAGS_1=0x80
                W linker  : "/data/data/org.qtproject.example.calculator/qt-reserved-files/plugins/platforms/android/libqtforandroid.so" has unsupported flags DT_FLAGS_1=0x80
                I Qt      : qt started
                D OpenGLRenderer: HWUI GL Pipeline
                I zygote  : Background concurrent copying GC freed 14726(1133KB) AllocSpace objects, 18(380KB) LOS objects, 52% free, 1407KB/2MB, paused 741us total 254.773ms
                I zygote  : Do partial code cache collection, code=26KB, data=30KB
                I zygote  : After code cache collection, code=25KB, data=30KB
                I zygote  : Increasing code cache capacity to 128KB
                I zygote  : Background concurrent copying GC freed 14025(1072KB) AllocSpace objects, 20(512KB) LOS objects, 50% free, 1491KB/2MB, paused 53.091ms total 112.459ms
                I zygote  : Do partial code cache collection, code=50KB, data=56KB
                I zygote  : After code cache collection, code=48KB, data=55KB
                I zygote  : Increasing code cache capacity to 256KB
                D         : HostConnection::get() New Host Connection established 0x9a107280, tid 5700
                I zygote  : android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
                I OpenGLRenderer: Initialized EGL, version 1.4
                D OpenGLRenderer: Swap behavior 1
                W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
                D OpenGLRenderer: Swap behavior 0
                
                A 1 Reply Last reply 23 Jun 2019, 08:54
                0
                • A a.burks
                  22 Jun 2019, 14:44

                  @Albertino Thank your very much. Now I can build and run the calculator example project with the emulator. That's very motivating. However I get many warnings in the log. Maybe the example projects are not optimized for Android. I will check the tutorial a hallo world project.

                  I zygote  : Not late-enabling -Xcheck:jni (already on)
                  W zygote  : Unexpected CPU variant for X86 using defaults: x86
                  W System  : ClassLoader referenced unknown path:
                  I QtCore  : Start
                  W linker  : "/data/app/org.qtproject.example.calculator-LvUUU6gyNuONt6Duq8qL_A==/lib/x86/libQt5Gui.so" has unsupported flags DT_FLAGS_1=0x80
                  W linker  : "/data/app/org.qtproject.example.calculator-LvUUU6gyNuONt6Duq8qL_A==/lib/x86/libQt5Widgets.so" has unsupported flags DT_FLAGS_1=0x80
                  W linker  : "/data/data/org.qtproject.example.calculator/qt-reserved-files/plugins/platforms/android/libqtforandroid.so" has unsupported flags DT_FLAGS_1=0x80
                  I Qt      : qt started
                  D OpenGLRenderer: HWUI GL Pipeline
                  I zygote  : Background concurrent copying GC freed 14726(1133KB) AllocSpace objects, 18(380KB) LOS objects, 52% free, 1407KB/2MB, paused 741us total 254.773ms
                  I zygote  : Do partial code cache collection, code=26KB, data=30KB
                  I zygote  : After code cache collection, code=25KB, data=30KB
                  I zygote  : Increasing code cache capacity to 128KB
                  I zygote  : Background concurrent copying GC freed 14025(1072KB) AllocSpace objects, 20(512KB) LOS objects, 50% free, 1491KB/2MB, paused 53.091ms total 112.459ms
                  I zygote  : Do partial code cache collection, code=50KB, data=56KB
                  I zygote  : After code cache collection, code=48KB, data=55KB
                  I zygote  : Increasing code cache capacity to 256KB
                  D         : HostConnection::get() New Host Connection established 0x9a107280, tid 5700
                  I zygote  : android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
                  I OpenGLRenderer: Initialized EGL, version 1.4
                  D OpenGLRenderer: Swap behavior 1
                  W OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
                  D OpenGLRenderer: Swap behavior 0
                  
                  A Offline
                  A Offline
                  Albertino
                  wrote on 23 Jun 2019, 08:54 last edited by
                  #13

                  @a.burks these are info/debug messages (not errors), QT is very verbose on android. You can ignore them

                  1 Reply Last reply
                  1
                  • A Albertino
                    20 Jun 2019, 22:51

                    The error: cannot find -lc++ using ndk r20 can be solved like this:
                    https://codereview.qt-project.org/c/qt/qtbase/+/264903/9/mkspecs/android-clang/qmake.conf#34

                    For example to compile for android armv7 ndk r20, locate the file:
                    C:\Qt\5.13.0\android_armv7\mkspecs\android-clang\qmake.conf
                    and add the missing -nostdlib++
                    for android x86 (i use this for emulator), locate the file:
                    C:\Qt\5.13.0\android_x86\mkspecs\android-clang\qmake.conf

                    For error: Execution failed for task ':compileDebugAidl'
                    locate the file on your build directory, mine is: C:\dev_qt\experiments\build-test_qt_5_13_0_ARMv7-Release\android-build\gradle.properties and change androidBuildToolsVersion
                    from: androidBuildToolsVersion=29.0.0
                    to: androidBuildToolsVersion=28.0.3

                    Y Offline
                    Y Offline
                    Yerson
                    wrote on 25 Jun 2019, 21:18 last edited by
                    #14

                    @Albertino Gracias!! . estuve 2 semanas para arreglar ese error.

                    1 Reply Last reply
                    0
                    • J Jay_M
                      3 Apr 2019, 19:36

                      Ok, finally got mine to work. What a %@$# PITA... I really dislike windows, but it's where I chosen do android dev unfortunately.

                      So... here's what I did... (it may have just been one of these that fixed the issue, but I'm too tired to go back and test them individually)

                      1st: correct some invalid variables in QT's build settings/build environment (i.e. wrong slash was / instead of \)... AND add some. Specifically:

                      ANDROID_HOME = D:\Android-SDK
                      ANDROID_SDK_ROOT = D:\Android-SDK
                      GRADLE_USER_HOME = C:\Users\pc\.gradle
                      JAVA_HOME = D:\Program Files\Java\jdk1.8.0_201
                      

                      (obviously these need to be upd for your install directories .i.e usually on C: drive)

                      Note: I specified these in Windows env settings, but it seems like they need to be specifically set in QT's env overrides.

                      2nd: remove the 29.0.0RC1 from Android SDK build-tools via Android Studio SDK manager. Apply.
                      Select 'show package details' to then be able to select the 28.0.3 version. Apply.

                      3rd: go into theQT project/app's folder and edit the gradle.properties file... change the line to:

                      androidBuildToolsVersion=28.0.3
                      

                      Finally: you should probably should close and reopen QT and the project.
                      Build/deploy should now (hopefully/finally) work!

                      M Offline
                      M Offline
                      Mahdi Bouafif
                      wrote on 27 Jun 2019, 16:57 last edited by
                      #15
                      This post is deleted!
                      1 Reply Last reply
                      0
                      • J Jay_M
                        3 Apr 2019, 19:36

                        Ok, finally got mine to work. What a %@$# PITA... I really dislike windows, but it's where I chosen do android dev unfortunately.

                        So... here's what I did... (it may have just been one of these that fixed the issue, but I'm too tired to go back and test them individually)

                        1st: correct some invalid variables in QT's build settings/build environment (i.e. wrong slash was / instead of \)... AND add some. Specifically:

                        ANDROID_HOME = D:\Android-SDK
                        ANDROID_SDK_ROOT = D:\Android-SDK
                        GRADLE_USER_HOME = C:\Users\pc\.gradle
                        JAVA_HOME = D:\Program Files\Java\jdk1.8.0_201
                        

                        (obviously these need to be upd for your install directories .i.e usually on C: drive)

                        Note: I specified these in Windows env settings, but it seems like they need to be specifically set in QT's env overrides.

                        2nd: remove the 29.0.0RC1 from Android SDK build-tools via Android Studio SDK manager. Apply.
                        Select 'show package details' to then be able to select the 28.0.3 version. Apply.

                        3rd: go into theQT project/app's folder and edit the gradle.properties file... change the line to:

                        androidBuildToolsVersion=28.0.3
                        

                        Finally: you should probably should close and reopen QT and the project.
                        Build/deploy should now (hopefully/finally) work!

                        M Offline
                        M Offline
                        Mahdi Bouafif
                        wrote on 27 Jun 2019, 17:14 last edited by
                        #16

                        @Jay_M My friend i searched for your answer for seven days. I m extremely thankful to you

                        1 Reply Last reply
                        0
                        • J Jay_M
                          3 Apr 2019, 19:36

                          Ok, finally got mine to work. What a %@$# PITA... I really dislike windows, but it's where I chosen do android dev unfortunately.

                          So... here's what I did... (it may have just been one of these that fixed the issue, but I'm too tired to go back and test them individually)

                          1st: correct some invalid variables in QT's build settings/build environment (i.e. wrong slash was / instead of \)... AND add some. Specifically:

                          ANDROID_HOME = D:\Android-SDK
                          ANDROID_SDK_ROOT = D:\Android-SDK
                          GRADLE_USER_HOME = C:\Users\pc\.gradle
                          JAVA_HOME = D:\Program Files\Java\jdk1.8.0_201
                          

                          (obviously these need to be upd for your install directories .i.e usually on C: drive)

                          Note: I specified these in Windows env settings, but it seems like they need to be specifically set in QT's env overrides.

                          2nd: remove the 29.0.0RC1 from Android SDK build-tools via Android Studio SDK manager. Apply.
                          Select 'show package details' to then be able to select the 28.0.3 version. Apply.

                          3rd: go into theQT project/app's folder and edit the gradle.properties file... change the line to:

                          androidBuildToolsVersion=28.0.3
                          

                          Finally: you should probably should close and reopen QT and the project.
                          Build/deploy should now (hopefully/finally) work!

                          I Offline
                          I Offline
                          iamOgunyinka
                          wrote on 16 Jul 2019, 07:00 last edited by
                          #17

                          @Jay_M Thank you very much, this worked for me!

                          1 Reply Last reply
                          0
                          • J Jay_M
                            3 Apr 2019, 19:36

                            Ok, finally got mine to work. What a %@$# PITA... I really dislike windows, but it's where I chosen do android dev unfortunately.

                            So... here's what I did... (it may have just been one of these that fixed the issue, but I'm too tired to go back and test them individually)

                            1st: correct some invalid variables in QT's build settings/build environment (i.e. wrong slash was / instead of \)... AND add some. Specifically:

                            ANDROID_HOME = D:\Android-SDK
                            ANDROID_SDK_ROOT = D:\Android-SDK
                            GRADLE_USER_HOME = C:\Users\pc\.gradle
                            JAVA_HOME = D:\Program Files\Java\jdk1.8.0_201
                            

                            (obviously these need to be upd for your install directories .i.e usually on C: drive)

                            Note: I specified these in Windows env settings, but it seems like they need to be specifically set in QT's env overrides.

                            2nd: remove the 29.0.0RC1 from Android SDK build-tools via Android Studio SDK manager. Apply.
                            Select 'show package details' to then be able to select the 28.0.3 version. Apply.

                            3rd: go into theQT project/app's folder and edit the gradle.properties file... change the line to:

                            androidBuildToolsVersion=28.0.3
                            

                            Finally: you should probably should close and reopen QT and the project.
                            Build/deploy should now (hopefully/finally) work!

                            ali-aydinA Offline
                            ali-aydinA Offline
                            ali-aydin
                            wrote on 9 Oct 2021, 19:00 last edited by
                            #18

                            @Jay_M said in What's the problem? android compile error:

                            theQT project/app's folder and edit the gradle.properties file

                            where is " theQT project/app's folder and edit the gradle.properties file" file or directory?
                            i can't find it

                            jsulmJ 1 Reply Last reply 11 Oct 2021, 06:09
                            0
                            • ali-aydinA ali-aydin
                              9 Oct 2021, 19:00

                              @Jay_M said in What's the problem? android compile error:

                              theQT project/app's folder and edit the gradle.properties file

                              where is " theQT project/app's folder and edit the gradle.properties file" file or directory?
                              i can't find it

                              jsulmJ Offline
                              jsulmJ Offline
                              jsulm
                              Lifetime Qt Champion
                              wrote on 11 Oct 2021, 06:09 last edited by
                              #19

                              @ali-aydin said in What's the problem? android compile error:

                              where is " theQT project/app's folder

                              It's you project folder where the source code is.

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

                              1 Reply Last reply
                              0

                              • Login

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