Я спробував встановити свою програму на 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 мого модуля Inside 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 та 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, і він буде працювати або коментувати його.
Коментар @ enl8enmentnow має бути відповіддю для вирішення проблеми за допомогою генімоції:
Якщо у вас є ця проблема на Genymotion, навіть коли ви використовуєте перекладач ARM, це тому, що ви створюєте віртуальний пристрій x86 на зразок Google Nexus 10. Виберіть замість цього віртуальний пристрій ARM, як один із користувацьких таблиць.
це працювало для мене ... Android> Сценарії Gradle> 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 (в додатку модуля) параметри упаковки всередині області 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
У виданні спільноти візуальної студії 2017 року інколи не вибирається вибір підтримуваних ІСВ з Android Options.
У цьому випадку переконайтеся, що .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, і він сказав мені, що той, який я використовував, мав оновлення. Я оновив її, і проблема пішла.
Досить пізно, але просто наткнувся на це. Це для Xamarin.Android
. Переконайтеся, що ви не намагаєтеся налагоджувати в режимі випуску. Я отримую таку саму помилку, якщо в режимі випуску та намагаюся налагоджувати. Просто перехід від випуску до налагодження дозволив моєму правильно встановити.
У моєму випадку мені потрібно було завантажити версію програми x86.