Qt creator:创建一个与多个 ABI 兼容的 APK?

Qt creator : create an APK compatible with multiple ABIs?

在 android 上构建 Qt 应用程序时,您必须选择是要使用 ARM abi 还是 x86 abi。是否可以创建与两个 ABI 兼容的 APK,如何创建?

如果我没记错的话,Qt Creator 构建的 APK 有一个子文件夹 libs/,其中包含 JNI 所需的所有共享库。根据您构建的内容,libs/ 包含带有正确文件的 "armeabi-v7a""x86" 子文件夹。 我怎样才能拥有包含 both 子文件夹的 APK,以便所有 Android 设备都可以 运行 APK?我尝试自己修改 APK(因为它是一个普通的 .zip),但它弄乱了签名等。

还是我注定要发布到 Google 玩两个 APK?

我找到了一个有效的解决方案(至少对我而言)。

  • 单独构建 APK(e.g.armeabi-v7a 和 arm64-v8a)。在 QtCreator 的 Buil APK 步骤中对 APK 进行签名以构建版本 - APK(w/o 调试服务器)。
  • 使用 ZIP 工具(例如 7zip)打开未签名的 arm-v7a release APK 并复制 "/lib/armeabi-v7a" 文件夹到未签名的 arm64-v8a 版本 APK(未签名的 APK 由 QTC 在签名前创建)。
  • 运行 zipalign 4 on the combined apk 并使用 apksigner.
  • 签署对齐的 APK
  • 完成

整个过程可以写在一个cmd或者bat文件中。