Sto giocando con Android Studio testando alcuni progetti da GitHub e quando provo a emulare l'apk, non mi consente di scegliere un emulatore.
Mi dice:
Il dispositivo supporta x86, ma APK supporta solo armeabi-v7a
Perché fa questo?
Sto giocando con Android Studio testando alcuni progetti da GitHub e quando provo a emulare l'apk, non mi consente di scegliere un emulatore.
Mi dice:
Il dispositivo supporta x86, ma APK supporta solo armeabi-v7a
Perché fa questo?
Risposte:
Ho avuto lo stesso problema, ho controllato il build.gradle da module: app . Si scopre che esiste una tale configurazione:
ndk {
abiFilters "armeabi-v7a", "x86"
}
quando ho commentato tutto, tutto ha funzionato bene.
Stavo cercando di occuparmi del progetto React Native Android .
Disattiva il debug USB e riaccendilo sul dispositivo hardware.
Allow computer to connect to this deviceprompt non è stato visualizzato la prima volta, ma la seconda.
Su Linux: File> Invalida cache / Riavvia Sul telefono: carica invece la modifica del dispositivo in Trasferisci foto (PTP)
Camera (PTP)a Media Device (MTP)e funziona anche. Grazie!
Ho avuto il problema simile e l'ho risolto aggiungendo il valore "x86" all'elenco "abiFilters" come di seguito -
[Apri il file build.gradle (Module: app)] e cerca " ndk " in deafultSection e aggiungi "x86"!
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86"
}
Spero che sia d'aiuto!!!
armeabise scegli come target l'SDK 19 e versioni successive. Android stesso non lo supporta a partire dalla 4.4
Nel mio caso di macchina Linux ha adb devicesmostrato
List of devices attached
44b194f5 no permissions
Quindi riavviato il server adb
sudo adb kill-server
e poi
sudo adb start-server
quindi collega il dispositivo, attiva il debug e digita
adb devices
List of devices attached
44b194f5 device
Finalmente è stato in grado di funzionare sul dispositivo
Nel mio caso la mia app utilizza alcune librerie native. Ogni piattaforma richiede la creazione delle librerie corrispondenti.
Quindi la libreria nativa della piattaforma x86 (o qualsiasi altra) non viene generata, devi aggiungere un abifilter da qualche parte:
Esistono diversi punti in cui è possibile specificare i filtri abi:
Application.mk aggiungi la piattaforma che ti serve in questo modo:
APP_ABI := armeabi armeabi-v7a x86
build.gradle
trova abiFilters e aggiungi la piattaforma di cui hai bisogno in questo modo:
abiFilters "armeabi","armeabi-v7a","x86"
È necessario ricollegare il dispositivo e provare a disattivare / attivare le opzioni sviluppatore.
Il dispositivo supporta x86, ma APK supporta solo armeabi-v7a)
Sembra che tu abbia usato x86un'immagine nell'emulatore.
Creane uno separato. Scegli la scheda "altre immagini" per trovare i dispositivi di attivazione, se necessario.
Oppure, esegui su un dispositivo reale. Il repository che hai elencato è pensato per funzionare su un Raspberry Pi 3 / ODroid, credo.
Può confermare, l'attivazione / disattivazione del debug USB nelle Opzioni sviluppatore ha risolto il problema. Forse anche annullare la finestra "Seleziona destinazione di distribuzione" in Android Studio e provare a eseguire nuovamente l'app dopo aver attivato il debug USB.
Per me ha funzionato cambiando l'opzione del cavo da
-> Charge Only.
Per
-> Transfer file.
Vai al dispositivo Settings >> Developer Options >> Restore Default Settingse abilitaUSB debugging
Il codice seguente ha funzionato per me:
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
Se usi Ubuntu:
adb kill-server
adb start-server
Funziona per me su Windows OS.
L'esecuzione di un AVD utilizzando il processore x86 è 10 volte più veloce rispetto all'utilizzo dell'emulatore ARM, ma la maggior parte delle volte si sta compilando solo l'APK per ARM. Per avere un'emulazione più veloce usando un AVD x86 ho dovuto fare quanto segue (per un progetto 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})
}
}
}
Il riavvio del dispositivo ha risolto il problema per me (React-native)
A me è successo dopo aver aggiornato Android Studio. Nel mio caso, è successo a causa dell'impostazione di build non configurata automaticamente in x86Debug-x86. Basta cambiarlo aprendo Build >> Seleziona Build Variant >> Cambia l'opzione build variant da armeabi-v7a a x86Debug-x86 o qualsiasi cosa ti serva nell'emulatore.
Prova ad abilitare Origini sconosciute dalle Opzioni di sicurezza. Ha funzionato per me.
lo vedo
Se stai usando CMake per le tue build, controlla il file \ proj.android \ gradle.properties e aggiorna PROP_APP_ABI per includere le build per x86, o in alternativa, puoi semplicemente usare armeabi-v7a o arm64-v8a Android immagini.
Esempio: PROP_APP_ABI = armeabi-v7a: arm64-v8a: x86
Se non stai utilizzando cmake, cerca in \ proj.android \ app \ jni \ Application.mk nel caso in cui sia necessario modificare l'impostazione ABI lì.