gpt4 book ai didi

android - 在官方 Android 模拟器上安装 ARM Translation (libhoudini)

转载 作者:行者123 更新时间:2023-11-29 02:20:17 26 4
gpt4 key购买 nike

我有一个使用原生 ARM 共享库 (.so) 的小型应用程序。使用 Genymotion 时,我可以成功安装 ARM 翻译包(只需删除 ZIP 文件)并且该应用程序可以在基于 x86 的模拟器上正常运行。

现在我需要在 Genymotion 不支持的 headless linux 服务器上运行相同的应用程序。我下载了官方的google模拟器和对应的系统镜像。从 zip 存档中提取文件并上传到 /system 分区后,我可以运行 houdini --version,但是应用程序不会安装 (INSTALL_FAILED_NO_MATCHING_ABIS).

能否指导我如何在官方 google x86 模拟器上运行包含 ARM 库的应用程序?

最佳答案

houdini --version 的输出是什么?

当您安装应用程序时,PackageManager 会检查应用程序的 ABI(哪些库包含在 apk .so 文件中)和系统的 ABI(系统支持哪种类型的库)

如果你运行 getprop | grep -i abi

getprop | grep -i abi
[ro.product.cpu.abi]: [x86]
[ro.product.cpu.abilist]: [x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist32]: [x86,armeabi-v7a,armeabi]
[ro.product.cpu.abilist64]: []

在这个输出中,系统支持x86、armeabi-v7a和armeabi类型的32位.so文件。

请在您的设备上检查此输出。此输出中很可能不会提及 armeabi。

因此,当 PackageManager 尝试安装 ARM 应用程序并检查此 ABI 不受支持时,它会抛出 INSTALL_FAILED_NO_MATCHING_ABIS 错误。

所以你必须修复系统 ABI。编辑文件 /system/build.prop 以在 ro.product.cpu.abilist 和 ro.product.cpu.abilist32 中添加 ARM 支持。如果您运行的是 64 位 Android,则必须更改这些行。

ro.product.cpu.abilist=x86_64,x86,arm64-v8a,armeabi-v7a,armeabi
ro.product.cpu.abilist32=x86,armeabi-v7a,armeabi
ro.product.cpu.abilist64=x86_64,arm64-v8a

关于android - 在官方 Android 模拟器上安装 ARM Translation (libhoudini),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56514860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com