INSTALL_FAILED_NO_MATCHING_ABIS при установке apk
Я попытался установить мое приложение в Android L Preview Intel Atom Virtual Device, у него не получилось с ошибкой:
INSTALL_FAILED_NO_MATCHING_ABIS
Что это значит?
Ответы
Ответ 1
INSTALL_FAILED_NO_MATCHING_ABIS
- это когда вы пытаетесь установить приложение с родными библиотеками, и у него нет собственной библиотеки для вашей архитектуры процессора. Например, если вы скомпилировали приложение для armv7 и пытаетесь установить его на эмулятор, который использует архитектуру Intel, то это не сработает.
Ответ 2
INSTALL_FAILED_NO_MATCHING_ABIS - это когда вы пытаетесь установить приложение с родными библиотеками, и у него нет собственной библиотеки для вашей архитектуры процессора. Например, если вы скомпилировали приложение для armv7 и пытаетесь установить его на эмулятор, который использует архитектуру Intel, то это не сработает.
Использование Xamarin на Visual Studio 2015. Исправить эту проблему:
- Откройте свой xamarin.sln
- Щелкните правой кнопкой мыши ваш проект Android
- Свойства кликов
- Нажмите "Настройки Android".
- Перейдите на вкладку "Дополнительно".
-
В разделе "Поддерживаемые архитектуры" выполните следующие проверки:
- armeabi-v7a
- x86
-
спасти
- F5 (построить)
Изменить. Сообщается, что это решение работает и на Visual Studio 2017.
Редактировать 2: Сообщается, что это решение работает и в Visual Studio 2017 для Mac.
Ответ 3
Я отправляю ответ из другого потока, потому что это хорошо работает для меня, трюк заключается в том, чтобы добавить поддержку для обеих архитектур:
Проводя это, потому что я не мог найти прямой ответ и должен был посмотреть несколько разных сообщений, чтобы получить то, что я хотел сделать...
Я смог использовать эмулятор x86 Accelerated (HAXM), просто добавив его в свой модуль build.gradle script Inside android {} block:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Запустить (построить)... Теперь в вашей выходной папке будет файл (yourapp) -x86-debug.apk. Я уверен, что есть способ автоматизировать установку после запуска, но я просто запускаю свой предпочтительный эмулятор HAXM и использую командную строку:
adb install (yourapp)-x86-debug.apk
Ответ 4
Если вы используете Genymotion, вам нужно Установка ARM-перевода и GApps
Ответ 5
Это действительно странная ошибка, которая может быть вызвана мультисайсом вашего приложения. Чтобы обойти это, используйте следующий блок в своем приложении build.gradle:
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
Ответ 6
Я знаю, что здесь было много ответов, но версия TL; DR - это (если вы используете Xamarin Studio):
- Щелкните правой кнопкой мыши проект Android в дереве решений
- Выберите
Options
- Перейдите к
Android Build
- Перейдите на вкладку
Advanced
- Проверьте архитектуры, которые вы используете в своем эмуляторе (возможно
x86
/armeabi-v7a
/armeabi
)
- Сделайте приложение для kickass:)
Ответ 7
Это решение сработало для меня. Попробуйте это, добавьте следующие строки в файл build.gradle приложения.
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Ответ 8
Комментарий @enl8enmentnow должен быть ответом, чтобы исправить проблему с помощью genymotion:
Если у вас есть эта проблема в Genymotion даже при использовании транслятора ARM, это происходит из-за того, что вы создаете виртуальное устройство x86, такое как Google Nexus 10. Вместо этого выберите виртуальное устройство ARM, например, одну из пользовательских таблеток.
Ответ 9
Visual Studio mac - вы можете изменить поддержку здесь:
![enter image description here]()
Ответ 10
это сработало для меня... Android> Gradle Scripts> build.gradle (Модуль: приложение)
добавить внутри Android *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
![enter image description here]()
Ответ 11
У меня была эта проблема, используя библиотеку bitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7), добавленную в build.gradle (в модуле app) варианты упаковки внутри области android. это помогло мне.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Ответ 12
На Android 8:
apache.commons.io:2.4
он дает INSTALL_FAILED_NO_MATCHING_ABIS, попробуйте изменить его на 2.5 или 2.6, и он будет работать или комментировать его.
Ответ 13
INSTALL_FAILED_NO_MATCHING_ABIS означает, что архитектура не соответствует. Если вы используете Android Studio на Mac (который обычно использует Apple ARM), тогда вам нужно установить CPU/ABI Android Virtual Device на "arm" или "armeabi-v7a". Если, однако, вы используете Android Studio на ПК (который обычно использует чип Intel, затем установите значение "x86" или "x86_64".
Ответ 14
В моем случае, в проекте xamarin, при удалении визуальной студия удалены, выбрав свойства → Настройки Android и установите флажок Использовать время выполнения и используйте быстрое развертывание, в некоторых случаях один из них ![enter image description here]()
Ответ 15
Для genymotion на mac я получал сообщение INSTALL_FAILED_NO_MATCHING_ABIS при установке моего apk.
В моем проекте не было никакого "APP_ABI", но я добавил его соответствующим образом, и он построил только один apk для обеих архитектур, но он сработал.
fooobar.com/questions/24387/...
Ответ 16
В сообществе сообщества Visual Studio 2017 иногда выбор поддерживаемых ABI из Android Options не работает.
В этом случае убедитесь, что.csproj имеет следующую строку и не содержит повторяющихся строк в тех же конфигурациях сборки.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Чтобы редактировать,
- Выгрузите свой Android-проект
- Щелкните правой кнопкой мыши и выберите "Редактировать проект"...
- Убедитесь, что указанная выше строка имеет только один раз в конфигурации сборки
- Сохранить
- Щелкните правой кнопкой мыши на своем проекте android и перезагрузите
Ответ 17
Это случилось со мной. Я проверил диспетчер SDK, и он сказал мне, что у меня было обновление. Я обновил его, и проблема исчезла.
Ответ 18
Довольно поздно, но просто наткнулся на это. Это для Xamarin.Android
. Убедитесь, что вы не пытаетесь отлаживать в режиме выпуска. Я получаю точно такую же ошибку, если в режиме выпуска и пытаюсь отладить. Простое переключение с релиза на отладку позволило моему установить правильно.
Ответ 19
В основном, если вы попробовали все выше и по-прежнему у вас та же ошибка "Потому что я тоже сталкивался с этой проблемой раньше", то проверьте, какой .jar или .aar или модуль, который вы добавили, может быть той библиотекой, использующей ndk, и которая не поддерживает 8.0 (Oreo) +, также я использую библиотеку сокетов Microsoft SignalR, добавляя свои файлы .jar, и недавно я обнаружил, что приложение не устанавливается в Oreo, а затем я удаляю эту библиотеку, потому что в настоящее время на ее странице git нет решения, и я перехожу к другой.,
Поэтому, пожалуйста, проверьте библиотеку, которую вы используете, и поищите ее, если она вам очень нужна.
Ответ 20
В моем случае мне нужно было скачать версию приложения для x86.
- Перейти на https://www.apkmirror.com/
- Поиск приложения
- Выберите первый в списке
- Посмотрите на верхнюю часть страницы, где находится [Название компании]> [Имя приложения]> [Номер версии]
- Нажмите на название приложения
- Нажмите "Все варианты"
- Список должен содержать вариант x86 для загрузки
Ответ 21
Я столкнулся с этой проблемой при переходе с Android 7 (Nougat) на Android 8 (Oreo).
Я пробовал несколько способов, перечисленных выше, и, к моему несчастью, ничего не получалось.
Поэтому я изменил файл .apk на файл .zip, извлек его и нашел папку lib, в которой этот файл находился /x86_64/darwin/libscrypt.dylib, поэтому, чтобы удалить это, я добавил код в свой модуль build.gradle ниже раздела Android (т.е. )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Ура проблема решена
Ответ 22
В моем случае настройка следующих параметров поможет мне
![enter image description here]()
Ответ 23
Существует простой способ:
- Отключите подключенное устройство
- Закройте Android Studio
- Перезапустите Android Studio
- Подключите устройство с помощью USB-кабеля
- Нажмите кнопку "Запустить" и перейдите на кофе-брейк