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. Исправить эту проблему:

  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.

Ответ 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

Ответ 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>

Чтобы редактировать,

  1. Выгрузите свой Android-проект
  2. Щелкните правой кнопкой мыши и выберите "Редактировать проект"...
  3. Убедитесь, что указанная выше строка имеет только один раз в конфигурации сборки
  4. Сохранить
  5. Щелкните правой кнопкой мыши на своем проекте android и перезагрузите

Ответ 17

Это случилось со мной. Я проверил диспетчер SDK, и он сказал мне, что у меня было обновление. Я обновил его, и проблема исчезла.

Ответ 18

Довольно поздно, но просто наткнулся на это. Это для Xamarin.Android. Убедитесь, что вы не пытаетесь отлаживать в режиме выпуска. Я получаю точно такую же ошибку, если в режиме выпуска и пытаюсь отладить. Простое переключение с релиза на отладку позволило моему установить правильно.

Ответ 19

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

Поэтому, пожалуйста, проверьте библиотеку, которую вы используете, и поищите ее, если она вам очень нужна.

Ответ 20

В моем случае мне нужно было скачать версию приложения для x86.

  1. Перейти на https://www.apkmirror.com/
  2. Поиск приложения
  3. Выберите первый в списке
  4. Посмотрите на верхнюю часть страницы, где находится [Название компании]> [Имя приложения]> [Номер версии]
  5. Нажмите на название приложения
  6. Нажмите "Все варианты"
  7. Список должен содержать вариант 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

Существует простой способ:

  1. Отключите подключенное устройство
  2. Закройте Android Studio
  3. Перезапустите Android Studio
  4. Подключите устройство с помощью USB-кабеля
  5. Нажмите кнопку "Запустить" и перейдите на кофе-брейк