我的应用程序支持4种本机平台:armeabi-v71
,arm64-v8a
,x86
和x86_64
。我在构建脚本中过滤了这些内容:
ndkBuild {
targets "recognizer"
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
尽管如此,当上传到Google Play并在armeabi-v7a
设备上进行尝试时,APK中没有包含本机库。根据Google Play的文件应为4.90MB:
我选中了“查看设备”按钮,该设备列在该组中。但是,在安装时,Google Play显示下载为4.57MB。我使用“ Apk Extractor”应用程序检查了设备上的apk,它只有大约2MB(我的本机lib压缩了约2.5MB)。它包含.so
文件以外的所有内容。
此问题的其他答案建议过滤ABI,以便AAB文件中没有空文件夹。这不是我的情况,我的aab文件仅包含有效文件夹,全部包含我所需的唯一库。
我还使用bundletool进行了测试,我将build-apks
与--connected-device
标志一起使用。输出apks
文件包含本机lib。然后,我使用了install-apks
。它将APK提取到临时目录中,该目录还包含本机lib。但是同样,没有将本机lib安装到设备上。当我以“默认APK”模式从Android Studio安装APP时,将安装本机lib,并且“ Apk Extractor”还提取包含该lib的apk。