Подтвердить что ты не робот

INSTALL_FAILED_CPU_ABI_INCOMPATIBLE на устройстве с использованием intellij

Я видел некоторые вопросы по этому поводу, но ни с реальными ответами, ни с деталями. Вот мой случай:

У меня есть приложение, которое использует API Google Maps v2, который работает отлично. Недавно я узнал, что я не могу установить его на это, а не на устройство на базе ARM.

Чтобы решить проблему, я работаю с образцами Карт Google, представленными в SDK (\ sdk\extras\google\google_play_services\samples)

который дает мне то же сообщение об ошибке во время установки:

Failure [INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]

Я получаю это сообщение только на реальном устройстве, используя Intellij (12.1.1)

Он отлично работает с использованием как Eclipse на реальном устройстве, так и с помощью Intellij на эмуляторе, настроенного с процессором: Intel Atom (x86)

Любая помощь будет высоко оценена!

UPDATE

Как и ожидалось, то же самое происходит с Android Studio

4b9b3361

Ответ 1

По умолчанию IntelliJ предполагает, что папка libs в корневом модуле Android содержит собственные библиотеки, даже если она просто держит банки. Таким образом, пакет APK делает его похожим на то, что это родные библиотеки. У меня просто была аналогичная проблема, когда у моего приложения не было собственного кода и он работал на эмуляторе по умолчанию, но получил предупреждение ABI при установке в эмулятор Genymotion. Чтобы исправить это, сообщите IntelliJ (или Android Studio), что ваши библиотеки не являются внутренним кодом:

  • Откройте File -> Project Structure.
  • Нажмите Modules в левой части окна.
  • Для каждого модуля Android разверните раскрывающийся список и выберите подэлемент Android.
  • На вкладке Structure справа удалите содержимое поля Native libs directory (вы можете оставить его пустым).
  • После того, как вы сделали это для каждого модуля Android в проекте и применили изменения, вам может потребоваться перестроить проект для изменений, которые будут иметь место, выбрав Build -> Rebuild Project из глобального меню IntelliJ.

Ответ 2

Последний Genymotion не поддерживает двоичный файл ARM. Если у вас есть собственный код, скомпилированный для ARM, вы можете использовать Genymotion-ARM-Translation. Просто перетащите этот файл в домашнюю папку Genymotion и перезагрузитесь.

Справочник. http://forum.xda-developers.com/showthread.php?t=2528952.