Я бавлюся з Android Studio, тестуючи деякі проекти з GitHub, і коли я намагаюся емулювати apk, це не дозволяє мені вибрати емулятор.
Це говорить мені:
Пристрій підтримує x86, але APK підтримує лише armeabi-v7a
Чому це робиться?
Я бавлюся з Android Studio, тестуючи деякі проекти з GitHub, і коли я намагаюся емулювати apk, це не дозволяє мені вибрати емулятор.
Це говорить мені:
Пристрій підтримує x86, але APK підтримує лише armeabi-v7a
Чому це робиться?
Відповіді:
У мене була та ж проблема, я перевіряю build.gradle з модуля: app . Виявляється, є така конфігурація:
ndk {
abiFilters "armeabi-v7a", "x86"
}
коли я все прокоментував, все працювало нормально.
Я намагався мати справу з проектом React Native Android .
Вимкніть налагодження USB і знову увімкніть апаратний пристрій.
Allow computer to connect to this deviceпідказка відображалася не вперше, а вдруге.
У Linux: Файл> Вимкнути кеш / перезапуск На телефоні: Замість цього зарядіть зміну цього пристрою на Передача фотографій (PTP)
Camera (PTP)на, Media Device (MTP)і це теж працює. Дякую!
У мене була подібна проблема, і я її вирішив, додавши значення "x86" до списку "abiFilters", як показано нижче -
[Відкрийте файл build.gradle (модуль: додаток)] і знайдіть " ndk " у deafultSection та додайте до нього "x86"!
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
Сподіваюся, це допоможе !!!
armeabiякщо ви націлюєтеся на SDK 19 і вище. Сам Android не підтримує його, починаючи з 4.4
У моєму випадку Linux машина adb devicesпоказала
List of devices attached
44b194f5 no permissions
Потім перезапустив сервер adb
sudo adb kill-server
і потім
sudo adb start-server
потім підключіть пристрій, увімкніть налагодження та введіть
adb devices
List of devices attached
44b194f5 device
Нарешті вдалося запустити на пристрої
У моєму випадку моя програма використовує деякі власні бібліотеки. Кожна платформа вимагає створення відповідних бібліотек.
Отже, рідна бібліотека x86 (або будь-якої іншої) платформи не генерується. Ви повинні десь додати abifilter:
Є кілька місць, де можна вказати фільтри abi:
Application.mk додайте потрібну вам платформу так:
APP_ABI := armeabi armeabi-v7a x86
build.gradle
знайдіть abiFilters і додайте потрібну вам платформу так:
abiFilters "armeabi","armeabi-v7a","x86"
Вам потрібно знову підключити пристрій і спробувати вимкнути / увімкнути параметри розробника.
Див. Розділ Увімкнення параметрів розробника та налагодження
Пристрій підтримує x86, але APK підтримує лише armeabi-v7a)
Звучить, що ви використовували x86зображення в емуляторі.
Створіть окрему. Виберіть вкладку "Інші зображення", щоб знайти пристрої для охорони, якщо вам потрібно.
Або запустіть на реальному пристрої. Перераховане вами репо призначене для запуску на Raspberry Pi 3 / ODroid, я думаю.
Можна підтвердити, вимкнення / увімкнення налагодження USB у Параметрах розробника вирішило проблему. Можливо, навіть скасувати вікно "Вибрати ціль розгортання" в Android Studio і спробувати запустити програму ще раз після перемикання налагодження USB.
Для мене це спрацювало, змінивши варіант кабелю з
-> Charge Only.
До
-> Transfer file.
Просто перейдіть на пристрій, Settings >> Developer Options >> Restore Default Settingsа потім увімкнітьUSB debugging
Для мене працював наведений нижче код:
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
Якщо ви використовуєте Ubuntu:
adb kill-server
adb start-server
Це працює для мене в ОС Windows.
Запуск AVD за допомогою процесора x86 в 10 разів швидший, ніж за допомогою емулятора ARM, але більшу частину часу ви лише збираєте APK для ARM. Для швидшого запуску емуляції з використанням AVD x86 мені потрібно було зробити наступне (для проекту Cocos2d-x):
app / jni / Android.mk
APP_ABI := armeabi-v7a:x86
gradle.properties
PROP_APP_ABI=armeabi-v7a:x86
app / build.gradle
android {
...
defaultConfig {
...
ndk {
abiFilters = []
abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
}
}
}
Перезапуск пристрою вирішив проблему для мене (React-native)
Це трапилося зі мною після оновлення Android Studio. У моєму випадку це сталося через те, що параметр збірки не налаштовується автоматично на x86Debug-x86. Просто змініть його, відкривши Побудувати >> Виберіть варіант збірки >> Змініть варіант варіанта збірки з armeabi-v7a на x86Debug-x86 або що вам потрібно в емуляторі.
Спробуйте увімкнути невідомі джерела з параметрів безпеки. У мене це спрацювало.
я це бачу
Якщо ви використовуєте CMake для своїх збірок, то перевірте файл \ proj.android \ gradle.properties і оновіть PROP_APP_ABI, щоб включити збірки для x86, або ж ви можете просто використовувати armeabi-v7a або arm64-v8a Android зображення.
Приклад: PROP_APP_ABI = armeabi-v7a: arm64-v8a: x86
Якщо ви не використовуєте cmake, тоді загляньте в \ proj.android \ app \ jni \ Application.mk на випадок, якщо вам потрібно змінити там налаштування ABI.