From a5f80b4732d33dd36414a6ffbd49a9efc7c87a0a Mon Sep 17 00:00:00 2001 From: Assam Boudjelthia Date: Mon, 13 Jan 2025 16:38:59 +0200 Subject: [PATCH] Android: use the correct ABI folder to load uncompressed libs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's possible that the first ABI from Build.SUPPORTED_ABIS would return an ABI that's not packaged in the APK, for example if an armeabi-v7a APK is run under the device supporting arm64-v8a, in that case the returned path would be that of an arm64-v8a while it's not actually packaged inside the APK. Fixes: QTBUG-132155 Pick-to: 6.9 Change-Id: I0f311accee246fa2d1d0b8aaf424d034b4b2d04c Reviewed-by: André Klitzing Reviewed-by: Tinja Paavoseppä --- src/android/jar/src/org/qtproject/qt/android/QtLoader.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/android/jar/src/org/qtproject/qt/android/QtLoader.java b/src/android/jar/src/org/qtproject/qt/android/QtLoader.java index 038b28155a0..8ea5f526020 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtLoader.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtLoader.java @@ -375,7 +375,12 @@ abstract class QtLoader { **/ private String getApkNativeLibrariesDir() { - return QtApkFileEngine.getAppApkFilePath() + "!/lib/" + Build.SUPPORTED_ABIS[0] + "/"; + if (m_preferredAbi == null) { + // Workaround: getLocalLibrariesList() will call preferredAbiLibs() + // with valid library names which will assign m_preferredAbi. + getLocalLibrariesList(); + } + return QtApkFileEngine.getAppApkFilePath() + "!/lib/" + m_preferredAbi + "/"; } /**