Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-83985

ABI mismatch between armeabi-v7a and arm64-v8a makes deployment with ANDROID_EXTRA_LIBS impossible for all ABI

    XMLWordPrintable

Details

    • Android

    Description

      I installed QtCreator 4.12.0 with Qt 5.14.2. I'm using NDK r12b.

      I compiled TinyXML library. This generated me files "sde3p_tinyxml_armeabi-v7a.so" and "libsde3p_tinyxml-g_armeabi-v7a.so" (for debug). When I was using an older version (QtCreator 4.8.0 with Qt 5.12 and NDK r18b), there was no such ABI suffix.

      Now I try to link tinyXML from a sample program. I create a simple Qt project from QtCreator wizard and I add link statements as I used to:

      CONFIG(release, debug|release) {
           LIBS += C:/dev/vobs_2019/vobs_ext/libcpp/tinyxml/tinyxml-2.6.2/lib/android/r21b/Release/libsde3p_tinyxml_armeabi-v7a.so
           ANDROID_EXTRA_LIBS += C:/dev/vobs_2019/vobs_ext/libcpp/tinyxml/tinyxml-2.6.2/lib/android/r21b/Release/libsde3p_tinyxml_armeabi-v7a.so
      }
       
      CONFIG(debug, debug|release) {
          LIBS += C:/dev/vobs_2019/vobs_ext/libcpp/tinyxml/tinyxml-2.6.2/lib/android/r21b/Debug/libsde3p_tinyxml-g_armeabi-v7a.so
          ANDROID_EXTRA_LIBS += C:/dev/vobs_2019/vobs_ext/libcpp/tinyxml/tinyxml-2.6.2/lib/android/r21b/Debug/libsde3p_tinyxml-g_armeabi-v7a.so
      }
      

      This works fine, however, as I plan to support x86 soon, I want to make this dynamic, so I replace all 4 instances of `armeabi-v7a` by `$${ANDROID_TARGET_ARCH}` in my `LIBS` and `ANDROID_EXTRA_LIBS` assignments above.

      Then I get the error:
      External library C:/dev/vobs_2019/vobs_ext/libcpp/tinyxml/tinyxml-2.6.2/lib/android/r21b/Release/libsde3p_tinyxml_arm64-v8a.so does not exist!

      But why? I'm not targetting `arm64-v8a`.

      If I add `message( "HELLO: $${ANDROID_TARGET_ARCH}" )` in my pro file and run `qmake.exe TestQTXml.pro -spec android-clang "CONFIG+=qtquickcompiler" ANDROID_ABIS="armeabi-v7a"` it outputs:

       Project MESSAGE: HELLO: arm64-v8a
       Project MESSAGE: HELLO: armeabi-v7a
      

      Why is `arm64-v8a` reported as used while I only target `armeabi-v7a` (only this ABI is checked in my project settings) ?

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              assam Assam Boudjelthia
              jpo38 Jean Porcherot
              Rami Potinkara Rami Potinkara
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes