INSTALL_FAILED_NO_MATCHING_ABIS ao instalar o apk

Respostas:

633

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á.

Hiemanshu Sharma
fonte
1
@DanielOchoa É porque eles não costumam manter duas imagens para uma versão prévia. Quando L é lançado oficialmente, tenho certeza de que também haverá uma imagem Intel x86.
Hiemanshu Sharma
1
Como superar esse problema. Estou usando o Genymotion Emulater e instalo gapps e o Genymotion-ARM-Translation_v1.1 ainda está recebendo esse problema.
Prashant Maheshwari Andro
3
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.
enl8enmentnow
1
Alguma idéia de por que isso não funcionará em um Nexus 9 executando o 5.1.1. Funciona bem em um tablet Sony Xperia Z2 executando 4.4.2. Compilado Sdk 21, min 17 e abdicado 22.
Bear
3
Eu tive esse problema ao usar o emulador do Android Studio para um Nexus 5x na minha máquina Windows. Por motivos de velocidade [10x mais rápido], o padrão é simular o telefone como se estivesse trabalhando com uma arquitetura Intel x86 [o Snapdragon 808 do Nexus 5x é realmente baseado no ARM: tomshardware.com/reviews/lg-g4,4353-2.html ] . Corrigi o erro ao entrar no gerenciador do AVD, selecionando o dispositivo simulado que estava me dando o erro e clicando no botão Editar, onde configuro uma arquitetura ARM (armeabi-v7a). Após esta alteração, mais emulador reiniciar a instalação passou sem problemas
Antonino
150

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:

  1. Abra seu xamarin .sln
  2. Clique com o botão direito do mouse no seu projeto android
  3. Propriedades do clique
  4. Clique em Opções do Android
  5. Clique na guia "Avançado"
  6. Em "Arquiteturas suportadas", verifique o seguinte:

    1. armeabi-v7a
    2. x86
  7. Salve 

  8. F5 (compilação)

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 .

Asher Garland
fonte
6
Essa solução também funcionou no Visual Studio 2017, para um projeto Xamarin.Android.
Corentinaltepe
1
Isso também funcionou para mim ao usar um projeto Android WebView App
JRodd
4
Parece que no Xamarin, a cada novo dia, há um novo obstáculo inesperado que me impede de executar meu aplicativo (que funcionou ontem). Como meu arquivo csproj está no dropbox, eu pude verificar o histórico da versão, e essa propriedade não estava no arquivo ontem, estava totalmente ausente. Hoje, tive que adicionar a opção x86 para fazer o aplicativo funcionar. Por que diabos o xamarin ou o Android está subitamente usando diferentes valores padrão? Isso é tão frustrante! De qualquer forma, graças a pessoas como você, eu posso superar e continuar o trabalho. Muito obrigado e +1 por você!
TMan
2
Gostaria de poder votar mais de uma vez ... Testado e trabalhando no VS 2017 para Mac.
JordiVilaplana
Para Visual Studio Community 2019 para Mac: 1. Clique com o botão direito do mouse no seu projeto Android 2. Clique em Opções 3. Clique em Android Build 4. Avançado
null em
87

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
Driss Bounouar
fonte
2
Falha [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim
Não funcionou para mim e não foi possível encontrar o (yourapp)-x86-debug.apkarquivo na saída do meu projeto.
Eido95
Não quero necessariamente dividir APKs, isso é uma opção? @DrissBounouar
ericn
Você pode usar o apk universal, presumivelmente, ele possui as duas arquiteturas.
Driss Bounouar
ainda enfrentando o mesmo problema
Vikash Parajuli
61

Se você estiver usando o Genymotion, precisará instalar o ARM Translation and GApps

R00We
fonte
Em algumas APIs usadas, você precisa adicionar o "ARM Translation Installer v1.1" e "GApps para sua versão do Android".
precisa saber é
4
ATUALIZAÇÃO 28 de maio de 2017: Este guia não é mais suportado e provavelmente não funciona. Por favor, não o utilize ou peça mais suporte. de xda-developers
AndroidCoolestRulest
1
Você pode seguir este link para instalar o ARM Translation
Devansh Maurya
37

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]
IgorGanapolsky
fonte
1
Oi. Isso fez com que meu projeto fosse construído com êxito, mas ainda assim me deu o mesmo erro. Estou trabalhando no mac, genymotion. Além disso, em geral, essas configurações que você disse são apenas para a versão de depuração ou também para a compilação de lançamento?
MyDoggyWritesCode
@ user3241111 Isto pode ser utilizado para depuração e prod. Você já tentou limpar seu projeto. Ou talvez invalidar / reiniciar o Android Studio?
IgorGanapolsky
1
@ user3241111 Se você estiver usando gradlew para compilar terminais de linha de comando, ainda poderá limpar seu projeto com gradle.
IgorGanapolsky
1
Eu tentei esta solução, funcionou .. No meu projeto, não havia APP_ABI. Mas eu o adicionei de acordo e ele cria apenas um apk e funciona. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode
1
Além disso, eu adicionei habilitado daemon Gradle e tem passeado o processo tanto ... De qualquer forma, obrigado por seu apoio :)
myDoggyWritesCode
11

Eu sei que havia muitas respostas aqui, mas a versão TL; DR é essa (se você estiver usando o Xamarin Studio):

  1. Clique com o botão direito do mouse no projeto Android na árvore de soluções
  2. Selecione Options
  3. Vamos para Android Build
  4. Vá para a Advancedguia
  5. Verifique as arquiteturas que você usa no emulador (provavelmente x86/ armeabi-v7a/ armeabi)
  6. Faça um aplicativo kickass :)
Jonathan Perry
fonte
11

Esta solução funcionou para mim. Tente isso, adicione as seguintes linhas no arquivo build.gradle do seu aplicativo

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}
vaibhav
fonte
11

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á.

Saba
fonte
6
Muito obrigado, você salva meu dia. Eu não sei por que eu recebi: implementação 'org.apache.directory.studio:org.apache.commons.io:2.4' #
Pierrick HYMBERT 18/18
7

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.

muetzenflo
fonte
1
Estou trabalhando no mac e provavelmente é compilação para dispositivo virtual x86. Eu tentei com tablet costume genymotion também, que não funcionou, e deu mesmo erro durante a instalação
myDoggyWritesCode
7

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
               }
    }
 }

insira a descrição da imagem aqui


fonte
6

Visual Studio mac - você pode alterar o suporte aqui:

insira a descrição da imagem aqui

LeRoy
fonte
6

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'
    }
}
ediBersh
fonte
Obrigado. Isso me ajudou com a integração do Bitcoin J.
Umer Kiani
Graças tanto de você eu sou experimentar muitas solução, mas esta solução funciona para mim para mim Meu problema é para Scrypt-1.4.0.jar não instalar na versão android Pie (Nokia 7.1) Dispositivo
Sagar Pithiya
3

No meu caso, em um projeto xamarin, no erro do visual studio removido pela seleção de propriedades -> Opções do Android e marque Usar tempos de execução de compartilhamento e Usar implantação rápida, em alguns casos um deles insira a descrição da imagem aqui

Saleem Kalro
fonte
2

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

myDoggyWritesCode
fonte
2

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,

  1. Descarregue seu projeto Android
  2. Clique com o botão direito e selecione Editar Projeto ...
  3. Verifique se você tem a linha acima apenas uma vez em uma configuração de compilação
  4. Salve 
  5. Clique com o botão direito do mouse no seu projeto Android e recarregue
Kusal Dissanayake
fonte
1

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.

Sumit Kumar
fonte
1

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

Khan.N
fonte
1

Em geral, para descobrir qual dependência de biblioteca possui ABI incompatível,

  • criar um arquivo APK no Android Studio (menu Build> Build Bundle (s) / APK (s)> Build APK (s)) // real em 01.04.2020
  • renomear o arquivo APK, substituindo a extensão "apk" pela extensão "zip"
  • descompacte o arquivo zip em uma nova pasta
  • vá para a pasta libs
  • descubra quais bibliotecas * .jar com ABIs incompatíveis existem

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

Denis Dmitrienko
fonte
0

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.

Barry Fruitman
fonte
0

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.

Nieminen
fonte
0

No meu caso, eu precisava baixar a versão x86 do aplicativo.

  1. Vá para https://www.apkmirror.com/
  2. Pesquise pelo aplicativo
  3. Selecione o primeiro da lista
  4. Olhe na parte superior da página, onde tem [Nome da empresa]> [Nome do aplicativo]> [Número da versão]
  5. Clique no nome do aplicativo
  6. Clique em "Todas as variantes"
  7. A lista deve conter uma variante x86 para baixar
Fidel
fonte
0

No meu caso, definir opções a seguir me ajuda

insira a descrição da imagem aqui

Stefan Michev
fonte