Когда я пытаюсь установить apk
файл через monkeyrunner
скрипт Python, получаю ошибку INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113
. Как я могу решить эту проблему?
Детали виртуального устройства перечислены ниже:
Как упоминалось здесь: INSTALL_FAILED_NO_MATCHING_ABIS при установке apk :
INSTALL_FAILED_NO_MATCHING_ABIS — это когда вы пытаетесь установить приложение с собственными библиотеками, но у него нет собственной библиотеки для архитектуры вашего процессора. Например, если вы скомпилировали приложение для armv7 и пытаетесь установить его на эмулятор, использующий архитектуру Intel, оно не будет работать.
Чтобы обойти это, вам нужно получить эти библиотеки в формате /system/lib
.
Это возможно через использование libhoudini.so
библиотек. Вы можете рутировать свой эмулятор и проталкивать библиотеки через adb в /system/lib
.
Вы можете найти библиотеки здесь , а также даны инструкции.
Как правило, вам нужно сделать следующее:
Загрузите сжатый пакет из Интернета и распакуйте его в / system / lib / arm
(или в / system / lib64
, в зависимости от того, является ли платформа 32-разрядной или 64-разрядной). Ссылка для скачивания библиотек x86 houdini
Во-вторых, в каталоге /proc/sys/ fs/ binfmt_misc
под названием «регистрация» в файле, записанном в виде строки строк, чтобы сообщить ядру Linux, все используют исполняемый набор инструкций ARM и динамическую библиотеку ELF. Файл открывается с помощью программы houdini, а все исполняемые файлы набора инструкций ARM64 и ELF-файлы динамической библиотеки открываются с помощью программы houdini64 (в подробном объяснении binfmt_misc вы можете обратиться к Linux, как указать тип программы с помощью конкретной программы) . открыть (через binfmt_misc )
Вы можете перемонтировать adb как root и напрямую поместить папку arm (с библиотеками houdini) в /system/lib
папку следующим образом:
adb -e push C:\Users\User25\Desktop\houdini\arm /system/lib
(Не забудьте указать правильный путь и соответствующие разрешения)
Еще один второй вариант, который я пробовал лично, - это получить образ avd с уже включенным родным мостом руки (на случай, если у вас возникнут проблемы с рутированием вашего эмулятора).
Предпочтительно получить avd проигрывателя RemixOS или Genymotion и извлечь файлы system.img
, userdata.img
, ramdisk.img
и другие файлы, такие как и т build.prop
. д., и поместить в папку системных изображений вашего эмулятора (например, если загруженные изображения предназначены для x86 avd, скопируйте их в каталог системных изображений вашего эмулятора и вставьте их в папку x86 правильного уровня API - что-то вроде \system-images\android-26\google_apis\x86
этого и создайте avd на основе этого (это полезно только для тестирования ваших приложений на вашем x86 avd)
Вы должны избавиться от этой ошибки, если ничего не получится, просто используйте эмулятор с инструментами перевода рук.
xavier_fakerat
талха06