INSTALL_FAILED_NO_MATCHING_ABIS при встановленні apk


478

Я спробував встановити свою програму на Android L Preview Intel Atom Virtual Device, вона не вдалася з помилкою:

INSTALL_FAILED_NO_MATCHING_ABIS

Що це означає?


Перевірити це посилання для Android 3.0.1 випуску: stackoverflow.com/a/49473570/3400991
Shobhakar Тиварі

Відповіді:


633

INSTALL_FAILED_NO_MATCHING_ABISце коли ви намагаєтесь встановити додаток, який має вбудовані бібліотеки і не має вбудованої бібліотеки для вашої архітектури процесора. Наприклад, якщо ви склали додаток для armv7 і намагаєтесь встановити його на емуляторі, який використовує архітектуру Intel, замість цього він не працюватиме.


1
@DanielOchoa Це тому, що вони не хочуть підтримувати два зображення для попереднього випуску. Коли L офіційно запущений, я впевнений, що буде також зображення Intel x86.
Hiemanshu Sharma

1
Як подолати цю проблему. Я використовую Genymotion Emulater та встановлюю пробели та Genymotion-ARM-Translation_v1.1 все ще отримую цю проблему.
Прашант Махешварі Андро

3
Якщо у вас є ця проблема на Genymotion, навіть коли ви використовуєте перекладач ARM, це тому, що ви створюєте віртуальний пристрій x86 на зразок Google Nexus 10. Виберіть замість цього віртуальний пристрій ARM, як один із користувацьких таблиць.
enl8enmentnow

1
Будь-яка ідея, чому це не працюватиме на Nexus 9 під керуванням 5.1.1. Він прекрасно працює на планшеті Sony Xperia Z2 під керуванням 4.4.2. Складено Sdk 21, min 17 abd target 22
Ведмідь

3
У мене виникла ця проблема під час використання емулятора Android Studio для Nexus 5x на моїй машині Windows. З міркувань швидкості [10 разів швидше] за замовчуванням моделюється телефон так, ніби він працює з архітектурою Intel x86 [Snapdragon 808 Nexus 5x насправді базується на ARM: tomshardware.com/reviews/lg-g4,4353-2.html ] . Я виправив помилку при вході в диспетчер AVD, вибравши модельований пристрій, який видав мені помилку, і натиснув на кнопку Редагувати, де я створив архітектуру ARM (Armeabi-v7a). Після цієї зміни плюс перезавантаження емулятора інсталяція пройшла без проблем
Антоніно

150

INSTALL_FAILED_NO_MATCHING_ABIS - це коли ви намагаєтесь встановити додаток, який має вбудовані бібліотеки і не має вбудованої бібліотеки для вашої архітектури процесора. Наприклад, якщо ви склали додаток для armv7 і намагаєтесь встановити його на емуляторі, який використовує архітектуру Intel, замість цього він не працюватиме.

Використання Xamarin у Visual Studio 2015. Виправте цю проблему:

  1. Відкрийте свій xamarin .sln
  2. Клацніть правою кнопкою миші проект Android
  3. Клацніть властивості
  4. Клацніть Параметри Android
  5. Перейдіть на вкладку "Додатково"
  6. У розділі "Підтримувані архітектури" зробіть наступне:

    1. Armeabi-v7a
    2. x86
  7. зберегти

  8. F5 (збірка)

Редагувати: Про це рішення повідомлялося також, що він працює і на Visual Studio 2017 .

Редагувати 2: Повідомлялося, що це рішення також працює на Visual Studio 2017 для Mac .


6
Це рішення працювало і на Visual Studio 2017, для проекту Xamarin.Android.
corentinaltepe

1
Це також працювало для мене, коли я використовував проект Android WebView App
JRodd

4
Здається, що на Xamarin, з кожним новим днем ​​виникає нова, несподівана перешкода, що заважає мені запускати свою заявку (яка працювала вчора). Оскільки мій файл csproj знаходиться в dropbox, я міг перевірити історію версій, а цього властивості вчора не було у файлі, він взагалі відсутній. Сьогодні мені довелося додати параметр x86 для того, щоб застосувати програму. Чому на землі xamarin або android раптом використовують різні значення за замовчуванням? Це так засмучує! У будь-якому випадку, завдяки таким людям, як ти, я можу подолати і продовжувати працювати. Велике спасибі та +1 для вас!
Тман

2
Бажаю, щоб я міг подати заявку не раз ... Тестував і працював над VS 2017 для Mac.
JordiVilaplana

Для Visual Studio Community 2019 для Mac: 1. Клацніть правою кнопкою миші на вашому проекті Android. Клацніть Параметри 3. Клацніть Android Build 4. Додатково
null

87

Я надсилаю відповідь з іншої теми, тому що це добре для мене, хитрість полягає в тому, щоб додати підтримку для обох архітектур:

Опублікувавши це, оскільки я не міг знайти прямої відповіді, і мені довелося переглянути кілька різних постів, щоб отримати те, що я хотів зробити ...

Мені вдалося використати емулятор 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

2
Збій [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim

Не працював для мене і не міг знайти (yourapp)-x86-debug.apkфайл у проекті.
Eido95

Я не обов'язково хочу розділити APK, це варіант? @DrissBounouar
ericn

Ви можете використовувати універсальний apk, імовірно, він має обидві архітектури.
Дрісс Бунуар

як і раніше стикається з тією ж проблемою
Вікаш Параджулі

61

Якщо ви використовуєте Genymotion, вам потрібно встановити переклад ARM та GApps


У деяких API, які ви використовували, вам потрібно додати як "ARM Translation Installer v1.1", так і "GApps для вашої версії Android".
saneryee

4
ОНОВЛЕННЯ 28 травня 2017 року: Цей посібник більше не підтримується і, ймовірно, не працює. Будь ласка, більше не використовуйте його та не просіть підтримки від xda-developers
AndroidCoolestRulest

1
Ви можете перейти за цим посиланням, щоб встановити ARM Translation
Devansh Maurya

37

Це дійсно дивна помилка, яка може бути викликана багаторазовим додаванням вашої програми. Щоб обійти його, використовуйте наступний блок у файлі build.gradle додатка :

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[rest of your gradle script]

1
Привіт. Це змусило мій проект будуватись успішно, але все ж це дало мені таку ж помилку. Я працюю над mac, genymotion. Також, загалом, ці параметри, про які ви сказали, стосуються лише версії налагодження або також для створення версії?
myDoggyWritesCode

@ user3241111 Це можна використовувати як для налагодження, так і для prod. Ви намагалися очистити свій проект. Або, можливо, недійсна / перезапустіть Android Studio?
ІгорГанапольський

1
@ user3241111 Якщо ви використовуєте gradlew для побудови терміналу командного рядка, тоді ви все одно можете очистити свій проект gradle.
ІгорГанапольський

1
Я спробував це рішення, воно спрацювало. У моєму проекті не було жодної APP_ABI. Але я додав його відповідно, і він створює лише один apk, і він працює. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode

1
Крім того, я щойно додав увімкнений демон Gradle, і він настільки швидко прискорив процес ... У будь-якому випадку, дякую за вашу підтримку :)
myDoggyWritesCode

11

Я знаю, що тут було багато відповідей, але версія TL; DR: це (якщо ви використовуєте Xamarin Studio):

  1. Клацніть правою кнопкою миші проект Android в дереві рішення
  2. Виберіть Options
  3. Йти до Android Build
  4. Перейдіть на Advancedвкладку
  5. Перевірте архітектури, які ви використовуєте в емуляторі (ймовірно, x86/ armeabi-v7a/ armeabi)
  6. Зробіть додаток для кікзасу :)

11

Це рішення спрацювало на мене. Спробуйте це, додайте наступні рядки у файл build.gradle додатка

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}

11

На Android 8:

apache.commons.io:2.4

він дає INSTALL_FAILED_NO_MATCHING_ABIS, спробуйте змінити його на 2,5 або 2,6, і він буде працювати або коментувати його.


6
Дуже дякую, ви врятуєте мені день. Я не знаю, чому мені дісталося: імплементація 'org.apache.directory.studio:org.apache.commons.io:2.4'
Pierrick HYMBERT

7

Коментар @ enl8enmentnow має бути відповіддю для вирішення проблеми за допомогою генімоції:

Якщо у вас є ця проблема на Genymotion, навіть коли ви використовуєте перекладач ARM, це тому, що ви створюєте віртуальний пристрій x86 на зразок Google Nexus 10. Виберіть замість цього віртуальний пристрій ARM, як один із користувацьких таблиць.


1
Я працюю над mac і, ймовірно, це побудовано для віртуального пристрою x86. Я також спробував з користувальницьким планшетом genymotion, він не працював, і при встановленні дав таку ж помилку
myDoggyWritesCode

7

це працювало для мене ... 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
               }
    }
 }

введіть тут опис зображення


6

Visual Studio mac - підтримку ви можете змінити тут:

введіть тут опис зображення


6

У мене була ця проблема, використовуючи бібліотеку 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'
    }
}

Дякую. Це допомогло мені з Bitcoin J Integration.
Umer Kiani

Дякую вам, я намагаюся багато рішення, але це рішення працює для мене для мене. Моя проблема для scrypt-1.4.0.jar не встановлювати у версії для Android Pie (Nokia 7.1) Пристрій
Sagar Pithiya

3

У моєму випадку у проекті xamarin у візуальній студії помилка видаляється шляхом вибору властивостей -> Опції Android та встановіть прапорець Використовувати розділити Час запуску та Використовувати швидке розгортання, в деяких випадках один із них введіть тут опис зображення


2

Під час genymotion на mac я отримував помилку INSTALL_FAILED_NO_MATCHING_ABIS під час встановлення apk.

У моєму проекті не було жодного "APP_ABI", але я додав його відповідно, і він створив лише один apk для обох архітектур, але він працював. https://stackoverflow.com/a/35565901/3241111


2

У виданні спільноти візуальної студії 2017 року інколи не вибирається вибір підтримуваних ІСВ з Android Options.

У цьому випадку переконайтеся, що .csproj має наступний рядок і не має дублікатів рядків у одних і тих же конфігураціях збірки.

 <AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>

Щоб редагувати,

  1. Вивантажте проект Android
  2. Клацніть правою кнопкою миші та виберіть Редагувати проект ...
  3. Переконайтеся, що ви маєте вказаний рядок лише один раз у конфігурації збірки
  4. Зберегти
  5. Клацніть правою кнопкою миші на вашому проекті Android та перезавантажте

1

В основному, якщо ви спробували Все вище, і все-таки у вас однакова помилка "Тому що я занадто часто стикаюся з цією проблемою", тоді перевірте, який .jar або .aar або модуль, який ви додали, може бути однією бібліотекою з використанням ndk, а що не підтримує 8.0 (Oreo) +, так само я використовую бібліотеку сокетів Microsoft SignalR, додаючи свої файли .jar, і, нарешті, я з’ясував, що додаток не встановлюється в Oreo, а потім я видаляю цю бібліотеку, оскільки на її git-сторінці немає рішення, і я переходжу на іншу .

Тому, будь ласка, перевірте бібліотеку, яку ви використовуєте, і пошукайте в ній, якщо вам вона охоче потрібна.


1

Я зіткнувся з цією проблемою, коли перейшов з 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'
}

Ураження проблеми вирішено


1

Загалом, щоб з’ясувати, яка залежність бібліотеки має несумісний ABI,

  • побудувати файл APK у студії Android (меню "Збірка"> "Набір пакетів" / APK (файли)> "Створення APK (файлів)" // фактично 01.04.2020
  • перейменуйте файл APK, замінивши розширення "apk" на розширення "zip"
  • розпакуйте поштовий файл у нову папку
  • перейдіть до папки libs
  • з’ясуйте, які * .jar бібліотеки з несумісними ABI є

Ви можете спробувати оновити версію / видалити / замінити ці бібліотеки, щоб вирішити INSTALL_FAILED_NO_MATCHING_ABIS при встановленні проблеми apk


0

Це сталося зі мною. Я перевірив диспетчер SDK, і він сказав мені, що той, який я використовував, мав оновлення. Я оновив її, і проблема пішла.


0

Досить пізно, але просто наткнувся на це. Це для Xamarin.Android. Переконайтеся, що ви не намагаєтеся налагоджувати в режимі випуску. Я отримую таку саму помилку, якщо в режимі випуску та намагаюся налагоджувати. Просто перехід від випуску до налагодження дозволив моєму правильно встановити.


0

У моєму випадку мені потрібно було завантажити версію програми x86.

  1. Перейдіть на сторінку https://www.apkmirror.com/
  2. Шукайте додаток
  3. Виберіть перший у списку
  4. Подивіться вгорі сторінки, де знаходиться [Назва компанії]> [Назва програми]> [Номер версії]
  5. Клацніть Ім'я програми
  6. Натисніть "Усі варіанти"
  7. Список повинен містити варіант для завантаження x86

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.