Установите ARM Translation (libhoudini) на официальный эмулятор Android - PullRequest
0 голосов
/ 09 июня 2019

У меня есть небольшое приложение, которое использует собственную общую библиотеку ARM (.so). При использовании Genymotion я могу успешно установить пакет перевода ARM (просто удалив ZIP-файл), и приложение отлично работает на эмуляторе на основе x86.

Теперь мне нужно запустить одно и то же приложение на безголовом сервере Linux, который не поддерживается Genymotion. Я скачал официальный эмулятор Google и соответствующий образ системы. После извлечения файлов из zip-архива и загрузки в раздел /system я могу запустить houdini --version, однако приложение не будет установлено (INSTALL_FAILED_NO_MATCHING_ABIS).

Подскажите, пожалуйста, как запустить приложение с библиотекой ARM на официальном эмуляторе Google x86?

1 Ответ

0 голосов
/ 11 июня 2019

Какой вывод у 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]: []

В этом выводе система поддерживает 32-битные .so файлы типа x86, armeabi-v7a и armeabi.

Пожалуйста, проверьте этот вывод на вашем устройстве. Скорее всего, в этом выводе не будет упоминания об армеаби.

Поэтому, когда PackageManager пытается установить приложение ARM и проверяет, что этот ABI не поддерживается, он выдает ошибку INSTALL_FAILED_NO_MATCHING_ABIS.

Так что вам придется исправлять системные ABI. Отредактируйте файл /system/build.prop, чтобы добавить поддержку ARM, в ro.product.cpu.abilist and ro.product.cpu.abilist32. Если вы используете 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...