Tentei instalar meu aplicativo no Android L Preview Intel Atom Virtual Device, ele falhou com o erro:
INSTALL_FAILED_NO_MATCHING_ABIS
O que isso significa?
Tentei instalar meu aplicativo no Android L Preview Intel Atom Virtual Device, ele falhou com o erro:
INSTALL_FAILED_NO_MATCHING_ABIS
O que isso significa?
Respostas:
INSTALL_FAILED_NO_MATCHING_ABIS
é quando você está tentando instalar um aplicativo que possui bibliotecas nativas e não possui uma biblioteca nativa para sua arquitetura de CPU. Por exemplo, se você compilou um aplicativo para o armv7 e está tentando instalá-lo em um emulador que usa a arquitetura Intel , ele não funcionará.
INSTALL_FAILED_NO_MATCHING_ABIS é quando você está tentando instalar um aplicativo que possui bibliotecas nativas e não possui uma biblioteca nativa para sua arquitetura de CPU. Por exemplo, se você compilou um aplicativo para o armv7 e está tentando instalá-lo em um emulador que usa a arquitetura Intel, ele não funcionará.
Usando o Xamarin no Visual Studio 2015. Corrija esse problema:
Em "Arquiteturas suportadas", verifique o seguinte:
Salve
Edit: Esta solução foi relatada como funcionando no Visual Studio 2017 também.
Edição 2: esta solução também foi relatada como funcionando no Visual Studio 2017 para Mac .
Estou postando uma resposta de outro segmento, porque é o que funcionou bem para mim, o truque é adicionar suporte para as duas arquiteturas:
Postando isso porque não consegui encontrar uma resposta direta e tive que olhar para algumas postagens diferentes para conseguir o que queria ...
Consegui usar o emulador x86 Accelerated (HAXM) simplesmente adicionando isso ao script build.gradle do meu módulo Dentro do bloco android {}:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Executar (compilar) ... Agora haverá um (yourapp) -x86-debug.apk na sua pasta de saída. Tenho certeza de que existe uma maneira de automatizar a instalação no Run, mas inicio o emulador HAXM preferido e uso a linha de comando:
adb install (yourapp)-x86-debug.apk
(yourapp)-x86-debug.apk
arquivo na saída do meu projeto.
Se você estiver usando o Genymotion, precisará instalar o ARM Translation and GApps
Este é realmente um erro estranho que pode ser causado pelo multidexing do seu aplicativo. Para contornar isso, use o seguinte bloco no arquivo build.gradle do seu aplicativo :
android {
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
...[rest of your gradle script]
Eu sei que havia muitas respostas aqui, mas a versão TL; DR é essa (se você estiver usando o Xamarin Studio):
Options
Android Build
Advanced
guiax86
/ armeabi-v7a
/ armeabi
)No Android 8:
apache.commons.io:2.4
fornece INSTALL_FAILED_NO_MATCHING_ABIS, tente alterá-lo para 2.5 ou 2.6 e funcionará ou comentará.
O comentário de @ enl8enmentnow deve ser uma resposta para corrigir o problema usando o genymotion:
Se você tem esse problema no Genymotion, mesmo ao usar o conversor ARM, é porque está criando um dispositivo virtual x86 como o Google Nexus 10. Escolha um dispositivo virtual ARM, como um dos Tablets personalizados.
isso funcionou para mim ... Android> Scripts Gradle> build.gradle (Módulo: app) adicionar dentro do android *
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
Eu tive esse problema usando a biblioteca bitcoinJ (org.bitcoinj: bitcoinj-core: 0.14.7) adicionada ao build.gradle (no módulo de aplicativo) opções de empacotamento dentro do escopo do Android. isso me ajudou.
android {
...
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
}
Para genymotion no mac, eu estava recebendo o erro INSTALL_FAILED_NO_MATCHING_ABIS durante a instalação do meu apk.
No meu projeto, não havia "APP_ABI", mas eu o adicionei de acordo e ele criou apenas um apk para as duas arquiteturas, mas funcionou. https://stackoverflow.com/a/35565901/3241111
Na edição da comunidade do visual studio 2017, às vezes a seleção de ABIs suportadas nas Opções do Android não funciona.
Nesse caso, verifique se o .csproj tem a seguinte linha e nenhuma linha duplicada nas mesmas configurações de compilação.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
Para editar,
Basicamente, se você tentou Tudo acima e ainda tem o mesmo erro "Como também estou enfrentando esse problema antes", verifique qual arquivo .jar ou .aar ou módulo que você adicionou pode ser a única biblioteca que usa o ndk e que não suporta 8.0 (Oreo) +, da mesma forma, estou usando o Microsoft SignalR socket Library adicionando seus arquivos .jar e, finalmente, descobri que o aplicativo não está sendo instalado no Oreo e depois removo a biblioteca porque atualmente não há solução na sua página git e vou para outra. .
Portanto, verifique a biblioteca que você está usando e pesquise sobre ela, se você precisar dela.
Eu enfrentei esse problema ao passar do Android 7 (Nougat) para o Android 8 (Oreo).
Eu tentei várias maneiras listadas acima e, para minha má sorte, nada funcionou.
Então, mudei o arquivo .apk para o arquivo .zip e o extraí e encontrei a pasta lib com a qual este arquivo estava lá /x86_64/darwin/libscrypt.dylib. Para remover isso, adicionei um código no meu módulo build.gradle abaixo da seção android (ou seja, )
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
Problema de saúde resolvido
Em geral, para descobrir qual dependência de biblioteca possui ABI incompatível,
Você pode tentar atualizar a versão / remover / substituir essas bibliotecas para resolver o INSTALL_FAILED_NO_MATCHING_ABIS ao instalar o problema do apk
Isso aconteceu comigo. Eu verifiquei o SDK Manager e ele me disse que o que eu estava usando tinha uma atualização. Eu atualizei e o problema desapareceu.
Tarde demais, mas acabei encontrando isso. Isto é para Xamarin.Android
. Verifique se você não está tentando depurar no modo de liberação. Eu recebo exatamente o mesmo erro se estiver no modo de lançamento e tentando depurar. Simplesmente alternar do release para o debug permitiu que o meu fosse instalado corretamente.
No meu caso, eu precisava baixar a versão x86 do aplicativo.