Estou brincando com o Android Studio testando alguns projetos do GitHub e, quando tento emular o apk, ele não me permite escolher um emulador.
Diz-me:
O dispositivo é compatível com x86, mas o APK é compatível apenas com armeabi-v7a
Por que ele faz isso?
android
android-studio
Alexandre Ibarra
fonte
fonte
Respostas:
Eu tive o mesmo problema, verifiquei o build.gradle do módulo: app . Acontece que existe essa configuração:
ndk { abiFilters "armeabi-v7a", "x86" }
quando comentei tudo, tudo funcionou bem.
Eu estava tentando lidar com o projeto React Native Android .
fonte
Desligue a depuração USB e ligue-a novamente no dispositivo de hardware.
fonte
Allow computer to connect to this device
prompt não foi exibido na primeira vez, mas sim na segunda vez.No Android Studio, selecione o menu Build ,
em seguida, clique em Selecionar Variante de Compilação ... e na janela 'Variantes de Compilação' selecione x86Debug (ou versão)
PS: Estou usando o Android Studio 2.3 no Mac
fonte
No Linux: Arquivo> Invalidar cache / Reiniciar no telefone: Em vez disso, carregue esta alteração do dispositivo para transferir fotos (PTP)
fonte
Camera (PTP)
paraMedia Device (MTP)
e funciona também. Obrigado!Tive um problema semelhante e resolvi-o adicionando o valor "x86" à lista "abiFilters" como abaixo -
[Abra o arquivo build.gradle (Module: app)] e procure " ndk " em deafultSection e adicione "x86" a ele!
ndk { abiFilters "armeabi", "armeabi-v7a", "x86" }
Espero que ajude!!!
fonte
armeabi
se estiver visando o SDK 19 e superior. O próprio Android não oferece suporte a partir de 4,4No meu caso de máquina Linux
adb devices
mostrouList of devices attached 44b194f5 no permissions
Em seguida, reiniciou o servidor adb
sudo adb kill-server
e depois
sudo adb start-server
em seguida, conecte seu dispositivo, ative a depuração e digite
Finalmente consegui rodar no dispositivo
fonte
No meu caso, meu aplicativo usa algumas bibliotecas nativas. Cada plataforma requer que as bibliotecas correspondentes sejam construídas.
Portanto, a lib nativa da plataforma x86 (ou qualquer outra) não é gerada. Você deve adicionar um abifilter em algum lugar:
Existem vários lugares onde os filtros abi podem ser especificados:
Application.mk adicione a plataforma de que você precisa assim:
build.gradle
encontre o abiFilters e adicione a plataforma necessária como esta:
abiFilters "armeabi","armeabi-v7a","x86"
fonte
Você precisa reconectar seu dispositivo e tentar desligar / ligar as opções do desenvolvedor.
Consulte Habilitar opções de desenvolvedor e depuração
fonte
Parece que você usou uma
x86
imagem no emulador.Crie um separado. Escolha a guia "outras imagens" para encontrar dispositivos de braço, se for necessário.
Ou execute em um dispositivo real. O repo que você listou deve ser executado em um Raspberry Pi 3 / ODroid, eu acho.
fonte
Pode confirmar, ativar / desativar a depuração USB nas Opções do desenvolvedor resolveu o problema. Talvez até cancele a janela "Select Deployment Target" no Android Studio e tente executar o aplicativo novamente após alternar a depuração USB.
fonte
Para mim, funcionou mudar a opção de cabo de
Para
fonte
Vá para o dispositivo
Settings >> Developer Options >> Restore Default Settings
e ativeUSB debugging
fonte
O código abaixo funcionou para mim:
ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86' }
fonte
No meu dispositivo físico, comecei a entender isso. A correção foi entrar em Configurações do desenvolvedor e desligar e ativar a depuração USB.
fonte
Se você usa Ubuntu:
fonte
adb kill-server
adb start-server
Está funcionando para mim no sistema operacional Windows.
fonte
Teste seu código em um telefone real. Se você ainda tiver o mesmo problema, importe seu código novamente e antes disso você deve atualizar seu SDK e criar um novo emulador com a imagem do sistema ARM.
fonte
Muitas vezes, isso significa que você não concedeu ao seu laptop / computador acesso ao dispositivo. Dê uma olhada no seu dispositivo e clique no botão "Permitir acesso", bem como nas permissões de depuração.
fonte
Executar um AVD usando o processador x86 é 10x mais rápido do que usar o emulador ARM, mas na maioria das vezes você está apenas compilando seu APK para ARM. Para que a emulação seja executada mais rapidamente usando um AVD x86, tive que fazer o seguinte (para um projeto 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}) } } }
fonte
Reiniciar o dispositivo resolveu o problema para mim (React-nativo)
fonte
Aconteceu comigo depois de atualizar o Android Studio. No meu caso, isso aconteceu porque a configuração de compilação não é configurada automaticamente no x86Debug-x86. Basta alterá-lo abrindo Build >> Selecionar Variante de Compilação >> Alterar a opção de variante de compilação de armeabi-v7a para x86Debug-x86 ou o que você precisar no emulador.
fonte
Tente habilitar Fontes desconhecidas em Opções de segurança. Funcionou para mim
fonte
eu vejo isso
Se você estiver usando o CMake para suas compilações, verifique o arquivo \ proj.android \ gradle.properties e atualize o PROP_APP_ABI para incluir as compilações para x86 ou, alternativamente, você pode apenas usar o armeabi-v7a ou arm64-v8a Android imagens.
Exemplo: PROP_APP_ABI = armeabi-v7a: arm64-v8a: x86
Se você não estiver usando o cmake, procure em \ proj.android \ app \ jni \ Application.mk caso precise alterar a configuração de ABI lá.
fonte