-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
Qt Creator 16.0.0, Qt Creator 17.0.0
-
None
With an x86_64 Android 15 AVD, trying to deploy an arm64 app gives the error:
3:04:09: The deployment device "Pixel_9" does not support the architectures used by the kit. The kit supports "arm64-v8a", but the device uses "x86_64". 13:04:09: Error while building/deploying project tst_qquickpopup (kit: Android Qt dev for Android Clang arm64-v8a) 13:04:09: When executing step "Deploy to Android device"
this emulator supports running arm64 apps though:
> adb shell
> su
> cat /system/build.prop | grep abi
# We get this
ro.system.product.cpu.abilist=x86_64,arm64-v8a
ro.system.product.cpu.abilist32=
ro.system.product.cpu.abilist64=x86_64,arm64-v8a
# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,
# use ro.product.cpu.abilist instead.
ro.product.cpu.abi=x86_64
It seems that Qt Creator is not handling this case properly, after looking around, it seems there are two issues with this case.
First, is that Creator is only calling that adb command when it's a physical device and not for emulator (https://github.com/qt-creator/qt-creator/blob/308c3e097b68690186ca7f0d0a79ef8aaacd211f/src/plugins/android/androiddevice.cpp#L739) and that's why the basic check for supported ABIs fail.
Then, there is a logic issue there in the fallback case https://github.com/qt-creator/qt-creator/blob/7de03675d3524d70fcdafe86e48921d134a1ce9d/src/plugins/android/androiddevice.cpp#L509, it doesn't handle this case.