Bawię się Androidem Studio, testując niektóre projekty z GitHub i kiedy próbuję emulować apk, nie pozwala mi to wybrać emulatora.
Mówi mi:
Urządzenie obsługuje x86, ale APK obsługuje tylko armeabi-v7a
Dlaczego to robi?
android
android-studio
Alexander Ibarra
źródło
źródło
Odpowiedzi:
Miałem ten sam problem, pobrałem plik build.gradle z modułu: app . Okazuje się, że jest taka konfiguracja:
ndk { abiFilters "armeabi-v7a", "x86" }
kiedy skomentowałem wszystko, wszystko działało dobrze.
Próbowałem poradzić sobie z projektem React Native na Androida .
źródło
Wyłącz debugowanie USB i włącz je ponownie na urządzeniu.
źródło
Allow computer to connect to this device
monit nie został wyświetlony za pierwszym razem, ale za drugim razem.W Android Studio wybierz menu Build ,
następnie kliknij Wybierz wariant kompilacji ... iw oknie `` Warianty kompilacji '' wybierz x86Debug (lub wydanie)
PS: Używam Android Studio 2.3 na Macu
źródło
W systemie Linux: Plik> Unieważnij pamięć podręczną / Uruchom ponownie W telefonie: Zamiast tego Naładuj to urządzenie zmień na Prześlij zdjęcia (PTP)
źródło
Camera (PTP)
naMedia Device (MTP)
i to też działa. Dziękuję Ci!Miałem podobny problem i rozwiązałem go, dodając wartość „x86” do listy „abiFilters”, jak poniżej -
[Otwórz build.gradle (moduł: app) file] i wyszukać " NdK " w deafultSection i dodać "x86" do niego!
ndk { abiFilters "armeabi", "armeabi-v7a", "x86" }
Mam nadzieję, że to pomoże!!!
źródło
armeabi
jeśli celujesz w SDK 19 i nowsze. Sam Android go nie obsługuje od 4.4W moim przypadku maszyna Linux
adb devices
pokazałaList of devices attached 44b194f5 no permissions
Następnie zrestartowałem serwer adb
sudo adb kill-server
i wtedy
sudo adb start-server
następnie podłącz urządzenie, włącz debugowanie i wpisz
adb devices List of devices attached 44b194f5 device
Wreszcie udało się uruchomić na urządzeniu
źródło
W moim przypadku moja aplikacja korzysta z niektórych bibliotek natywnych. Każda platforma wymaga zbudowania odpowiednich bibliotek.
Więc natywna biblioteka platformy x86 (lub jakiejkolwiek innej) nie jest generowana, musisz gdzieś dodać abifilter:
Istnieje kilka miejsc, w których można określić filtry abi:
Application.mk dodaj platformę, której potrzebujesz:
build.gradle
znajdź abiFilters i dodaj platformę, której potrzebujesz:
abiFilters "armeabi","armeabi-v7a","x86"
źródło
Musisz ponownie podłączyć urządzenie i spróbować wyłączyć / włączyć opcje programisty.
Zobacz Włączanie opcji dla programistów i debugowanie
źródło
Wygląda na to, że użyłeś
x86
obrazu w emulatorze.Utwórz osobny. Wybierz zakładkę „inne obrazy”, aby znaleźć uzbrojenie, jeśli musisz.
Lub uruchom na rzeczywistym urządzeniu. Wydaje mi się, że wymienione repozytorium ma działać na Raspberry Pi 3 / ODroid.
źródło
Potwierdzenie, wyłączenie / włączenie debugowania USB w Opcjach programisty rozwiązało problem. Może nawet anuluj okno „Select Deployment Target” w Android Studio i spróbuj ponownie uruchomić aplikację po przełączeniu debugowania USB.
źródło
U mnie zadziałało przy zmianie opcji kabla z
Do
źródło
Po prostu przejdź do urządzenia,
Settings >> Developer Options >> Restore Default Settings
a następnie włączUSB debugging
źródło
Poniższy kod zadziałał dla mnie:
ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' }
źródło
Na moim fizycznym urządzeniu zacząłem to rozumieć. Poprawka polegała na wejściu do ustawień programisty i wyłączeniu i włączeniu debugowania USB.
źródło
Jeśli używasz Ubuntu:
źródło
adb kill-server
Serwer startowy adb
Działa dla mnie w systemie operacyjnym Windows.
źródło
Przetestuj swój kod na prawdziwym telefonie. Jeśli nadal masz ten sam problem, zaimportuj kod ponownie, a przedtem zaktualizuj zestaw SDK i utwórz nowy emulator z obrazem systemu ARM.
źródło
Często oznacza to, że nie przyznałeś swojemu laptopowi / komputerowi dostępu do swojego urządzenia. Spójrz na swoje urządzenie i kliknij przycisk „Zezwól na dostęp” oraz uprawnienia do debugowania.
źródło
Uruchamianie AVD przy użyciu procesora x86 jest 10 razy szybsze niż przy użyciu emulatora ARM, ale przez większość czasu kompilujesz tylko pakiet APK dla ARM. Aby uzyskać szybsze przebiegi emulacji przy użyciu AVD x86, musiałem wykonać następujące czynności (dla projektu Cocos2d-x):
app / jni / Android.mk
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}) } } }
źródło
Ponowne uruchomienie urządzenia rozwiązało problem dla mnie (natywne reagowanie)
źródło
Zdarzyło mi się to po aktualizacji Android Studio. W moim przypadku stało się tak, ponieważ ustawienie kompilacji nie jest automatycznie konfigurowane w x86Debug-x86. Po prostu zmień to, otwierając Build >> Select Build Variant >> Zmień opcję wariantu kompilacji z armeabi-v7a na x86Debug-x86 lub cokolwiek potrzebujesz w emulatorze.
źródło
Spróbuj włączyć nieznane źródła w opcjach bezpieczeństwa. U mnie to zadziałało.
źródło
widzę to
Jeśli używasz CMake do swoich kompilacji, sprawdź plik \ proj.android \ gradle.properties i zaktualizuj PROP_APP_ABI, aby uwzględnić kompilacje dla x86, lub alternatywnie możesz po prostu użyć armeabi-v7a lub arm64-v8a Android zdjęcia.
Przykład: PROP_APP_ABI = armeabi-v7a: arm64-v8a: x86
Jeśli nie używasz cmake, zajrzyj do \ proj.android \ app \ jni \ Application.mk na wypadek, gdybyś musiał zmienić tam ustawienie ABI.
źródło