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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt创建者:创建一个兼容多个ABI的APK?相关的知识,希望对你有一定的参考价值。

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?

答案

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

  • 单独构建APK(例如,armeabi-v7a和arm64-v8a)。在QtCreator的Buil APK Step中签署APK,以构建一个版本 - APK(没有调试服务器)。
  • 使用ZIP工具(例如7zip)打开未签名的arm-v7a版本APK并将“/ lib / armeabi-v7a”文件夹复制到未签名的arm64-v8a版本APK(未签名的APK由QTC在签名之前创建)。
  • 在组合的apk上运行zipalign 4并使用apksigner签署对齐的APK。
  • 完成

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

以上是关于Qt创建者:创建一个兼容多个ABI的APK?的主要内容,如果未能解决你的问题,请参考以下文章

从 apk 中排除 abi

如何在本地创建签名与我在 Playstore 上的应用兼容的 APK(使用 Google 的应用签名)?

Flutter 大 apk 大小并针对不同 ABI 发布

从一个父项目 ionic 创建多个新项目 apk

使用 xamarin 和 Visual Studio 时如何优化每个 ABI 的 apk?

Makefile 报告 `func[abi:cxx11]()' 的多个定义