Я играю с Android Studio, тестируя некоторые проекты из GitHub, и когда я пытаюсь эмулировать apk, он не позволяет мне выбрать эмулятор.
Он говорит мне:
Устройство поддерживает x86, но APK поддерживает только armeabi-v7a
Почему он это делает?
Я играю с Android Studio, тестируя некоторые проекты из GitHub, и когда я пытаюсь эмулировать apk, он не позволяет мне выбрать эмулятор.
Он говорит мне:
Устройство поддерживает x86, но APK поддерживает только armeabi-v7a
Почему он это делает?
Ответы:
У меня была такая же проблема, я проверяю build.gradle из module: 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 (Module: app)], найдите « 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. Для более быстрого запуска эмуляции с использованием x86 AVD мне пришлось сделать следующее (для проекта Cocos2d-x):
приложение / jni / Android.mk
APP_ABI := armeabi-v7a:x86
gradle.properties
PROP_APP_ABI=armeabi-v7a:x86
приложение / build.gradle
android {
...
defaultConfig {
...
ndk {
abiFilters = []
abiFilters.addAll(PROP_APP_ABI.split(':').collect{it as String})
}
}
}
Перезагрузка устройства решила проблему для меня (React-native)
Это случилось со мной после обновления Android Studio. В моем случае это произошло из-за того, что параметр сборки не настроен автоматически в x86Debug-x86. Просто измените его, открыв Build >> Select Build Variant >> Измените вариант варианта сборки с 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.