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. "ABI is incompatible, device supports ABIs: ." with android sdk platform-tools v29.0.0
Forum Updated to NodeBB v4.3 + New Features

"ABI is incompatible, device supports ABIs: ." with android sdk platform-tools v29.0.0

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
5 Posts 4 Posters 1.0k Views 1 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.
  • W Offline
    W Offline
    Woazim
    wrote on last edited by
    #1

    Hi all,
    I recently upgraded my android SDK and it brings me v29.0.0 of platform-tools with no way to get back. In this version, I suppose that ADB comportment changed a bit when listing device supported ABIs. So when trying to deploy an android app to a connected device (USB or TCPIP), QtCreator 4.9.1 reports only incompatible devices with this explanation : "ABI is incompatible, device supports ABIs: ." (No supported ABI!)

    By exploring QtCreator source code, I found that adb seems to crash after listing supported ABI of my phone. (It's not really a crash, but a non-0 exit code...)

    So I made a little ADB wrapper as a workaround and I post it here if it could help someone who encounters the same problem. You can use it by following these steps:

    1. Rename %AndroidSDK%\platform-tools\adb.exe as adb.exe.bak.exe
    2. Build a fake adb.exe using the following standard c++ code:
    #include <cstdlib>
    #include <string>
    #include <iostream>
    #include <algorithm>
    #include <cctype>
    
    int main(int argc, char *argv[])
    {
      std::string strCmd = std::string(argv[0]);
      std::string strExt = strCmd.substr(strCmd.length() - 4, 4);
      std::transform(strExt.begin(), strExt.end(), strExt.begin(),
                     [](unsigned char c) { return std::tolower(c); });
      if (strExt.compare(".exe") != 0)
        strCmd += ".exe";
    
      strCmd += ".bak.exe";
      
      if (argc > 1)
      {
        for (int i = 1; i < argc; ++i)
        {
          strCmd += " \"" + std::string(argv[i]) + "\"";
        }
      }
    
      std::system(strCmd.c_str());
    }
    
    1. Put this new adb.exe in %AndroidSDK%\platform-tools\

    I will try to propose a patch to QtCreator sources.

    1 Reply Last reply
    1
    • S Offline
      S Offline
      Stefano_2712
      wrote on last edited by
      #2

      Thank you, having the same issue and your patch is working like a charm! Bravo!

      1 Reply Last reply
      0
      • I Offline
        I Offline
        IuriiM
        wrote on last edited by
        #3

        That really saved me, thank you a lot!

        1 Reply Last reply
        0
        • J Offline
          J Offline
          Joinn
          wrote on last edited by
          #4

          It works! Thanks a lot!

          1 Reply Last reply
          0
          • W Offline
            W Offline
            Woazim
            wrote on last edited by
            #5

            From now, you can update your Android platform-tools to v29.0.1 using sdkmanager --update. ADB has been corrected by Google.

            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