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

时间:2017-08-26 13:21:05

标签: android qt qt-creator

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

如果我更正,Qt Creator构建的APK有一个子文件夹libs /包含JNI所需的所有共享库。根据您构建的内容,libs /包含" armeabi-v7a" " x86" 子文件夹以及正确的文件。 如何让APK包含两个子文件夹,以便所有Android设备都可以运行APK?我尝试修改APK自己(因为它是一个简单的.zip),但它搞砸了签名等。

或者我注定要使用两个APK发布到Google Play?

1 个答案:

答案 0 :(得分:1)

我找到了一个可行的解决方案(至少对我来说)。

  • 分别构建APK(例如,armeabi-v7a和arm64-v8a)。在QtCreator的Buil APK步骤中对APK进行签名,以构建发行版-APK(不带调试服务器)。
  • 使用ZIP工具(例如7zip)打开未签名的 arm-v7a版本 APK,然后将“ / lib / armeabi-v7a” 文件夹复制到未签名的 arm64-v8a释放APK (未签名的APK由QTC在签名之前创建)。
  • 在组合的APK上运行 zipalign 4 ,并用 apksigner 签名对齐的APK。
  • 完成

整个过程可以在cmd或bat文件中进行编程。