Я попытался установить приложение в Android L Preview Intel Atom Virtual Device, оно не удалось с ошибкой:
INSTALL_FAILED_NO_MATCHING_ABIS
Что это значит?
Я попытался установить приложение в Android L Preview Intel Atom Virtual Device, оно не удалось с ошибкой:
INSTALL_FAILED_NO_MATCHING_ABIS
Что это значит?
Ответы:
INSTALL_FAILED_NO_MATCHING_ABIS
это когда вы пытаетесь установить приложение с собственными библиотеками и без встроенной библиотеки для вашей архитектуры процессора. Например, если вы скомпилировали приложение для armv7 и пытаетесь установить его на эмуляторе, использующем архитектуру Intel, оно не будет работать.
INSTALL_FAILED_NO_MATCHING_ABIS - это когда вы пытаетесь установить приложение с собственными библиотеками и без встроенной библиотеки для архитектуры вашего процессора. Например, если вы скомпилировали приложение для armv7 и пытаетесь установить его на эмуляторе, использующем архитектуру Intel, оно не будет работать.
Использование Xamarin в Visual Studio 2015. Исправьте эту проблему следующим образом:
В разделе «Поддерживаемые архитектуры» сделайте следующее:
спасти
Изменить: Сообщается, что это решение работает и в Visual Studio 2017 .
Редактировать 2: Сообщалось, что это решение работает и в Visual Studio 2017 для Mac .
Я отправляю ответ из другой ветки, потому что это то, что у меня хорошо работает, хитрость заключается в том, чтобы добавить поддержку для обеих архитектур:
Публикуя это, потому что я не мог найти прямой ответ, и мне пришлось просмотреть пару разных сообщений, чтобы получить то, что я хотел сделать ...
Я смог использовать эмулятор x86 Accelerated (HAXM), просто добавив его в скрипт своего модуля build.gradle внутри блока android {}:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Запустить (построить) ... Теперь в вашей выходной папке будет (yourapp) -x86-debug.apk. Я уверен, что есть способ автоматизировать установку при запуске, но я просто запускаю предпочитаемый эмулятор HAXM и использую командную строку:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
файл в выводе моего проекта.
Если вы используете Genymotion, вам нужно установить ARM Translation и GApps
Это действительно странная ошибка, которая может быть вызвана мультидексированием вашего приложения. Чтобы обойти это, используйте следующий блок в файле build.gradle вашего приложения :
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
Я знаю, что здесь было много ответов, но версия TL; DR такова (если вы используете Xamarin Studio):
Options
Android Build
Advanced
вкладкуx86
/ armeabi-v7a
/armeabi
)На Android 8:
apache.commons.io:2.4
он дает INSTALL_FAILED_NO_MATCHING_ABIS, попробуйте изменить его на 2,5 или 2,6, и он будет работать или комментировать.
Комментарий @ ent8enmentnow должен быть ответом для решения проблемы с помощью genymotion:
Если у вас есть эта проблема в Genymotion даже при использовании транслятора ARM, это потому, что вы создаете виртуальное устройство x86, такое как Google Nexus 10. Вместо этого выберите виртуальное устройство ARM, как одну из пользовательских таблиц.
это сработало для меня ... 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
}
}
}
у меня была эта проблема с использованием библиотеки 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'
}
}
Для genymotion на Mac я получил ошибку INSTALL_FAILED_NO_MATCHING_ABIS при установке моего apk.
В моем проекте не было никакого "APP_ABI", но я добавил его соответственно, и он собрал только один apk для обеих архитектур, но он работал. https://stackoverflow.com/a/35565901/3241111
В выпуске Visual Studio Community 2017 иногда не поддерживается выбор поддерживаемых ABI из параметров Android.
В этом случае убедитесь, что .csproj имеет следующую строку и не содержит повторяющихся строк в тех же конфигурациях сборки.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Чтобы редактировать,
В основном, если вы попробовали все выше и по-прежнему у вас та же ошибка «Потому что я тоже сталкивался с этой проблемой раньше», то проверьте, какие .jar или .aar или модуль, который вы добавили, могут быть одной библиотекой, использующей ndk, и которая не поддерживает 8.0 (Oreo) +, также я использую библиотеку сокетов Microsoft SignalR, добавляя свои файлы .jar, и недавно я обнаружил, что приложение не устанавливается в Oreo, а затем я удаляю эту библиотеку, потому что в настоящее время на ее странице git нет решения, и я перехожу к другой. ,
Поэтому, пожалуйста, проверьте библиотеку, которую вы используете, и поищите ее, если вам она очень нужна.
Я столкнулся с этой проблемой при переходе с 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'
}
Ура проблема решена
В общем случае, чтобы узнать, какая зависимость библиотеки имеет несовместимый ABI,
Вы можете попытаться обновить версию / удалить / заменить эти библиотеки, чтобы решить INSTALL_FAILED_NO_MATCHING_ABIS при установке apk
Это случилось со мной. Я проверил SDK Manager, и он сказал мне, что у того, который я использовал, было обновление. Я обновил его, и проблема ушла.
Довольно поздно, но только столкнулся с этим. Это для Xamarin.Android
. Убедитесь, что вы не пытаетесь отлаживать в режиме выпуска. Я получаю ту же самую ошибку, если в режиме выпуска и пытаюсь отладить. Простое переключение с релиза на отладку позволило моему установить правильно.
В моем случае мне нужно было скачать версию приложения для x86.