INSTALL_FAILED_NO_MATCHING_ABIS bij installatie apk

Ik heb geprobeerd mijn app te installeren in Android L Preview Intel Atom Virtual Device, dit is mislukt met een fout:

INSTALL_FAILED_NO_MATCHING_ABIS

Wat betekent het?


Antwoord 1, autoriteit 100%

INSTALL_FAILED_NO_MATCHING_ABISis wanneer u een app probeert te installeren die native bibliotheken heeft en het heeft geen native bibliotheek voor uw cpu-architectuur. Als u bijvoorbeeld een app voor armv7hebt gecompileerd en deze probeert te installeren op een emulator die de Intel-architectuur gebruikt, zal dit niet werken.


Antwoord 2, autoriteit 22%

INSTALL_FAILED_NO_MATCHING_ABIS is wanneer u een app probeert te installeren die native bibliotheken heeft en het heeft geen native bibliotheek voor uw cpu-architectuur. Als je bijvoorbeeld een app voor armv7 hebt gecompileerd en deze probeert te installeren op een emulator die de Intel-architectuur gebruikt, zal het niet werken.

Xamarin gebruiken in Visual Studio 2015.
Los dit probleem op door:

  1. Open je xamarin .sln
  2. Klik met de rechtermuisknop op uw Android-project
  3. Klik op eigenschappen
  4. Klik op Android-opties
  5. Klik op het tabblad ‘Geavanceerd’
  6. Vink onder “Ondersteunde architecturen” het volgende aan:

    1. armeabi-v7a
    2. x86
  7. opslaan

  8. F5 (bouwen)

Bewerken:deze oplossing werkt ook in Visual Studio 2017.

Bewerken 2:Er is gemeld dat deze oplossing ook werkt op Visual Studio 2017 voor Mac.


Antwoord 3, autoriteit 14%

Ik plaats een antwoord uit een andere thread omdat dat voor mij goed werkte, de truc is om ondersteuning voor beide architecturen toe te voegen:

Plaats dit omdat ik geen direct antwoord kon vinden en naar een paar verschillende posten moest kijken om te krijgen wat ik wilde …

Ik was in staat om de X86-versnelde (HAXM) -emulator te gebruiken door dit eenvoudig toe te voegen aan mijn module’s build.gradle-script binnen Android {} Blokkering:

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

Run (Build) … Nu is er een (uwApp) -x86-debug.APK in uw uitvoermap. Ik weet zeker dat er een manier is om het installeren op RUN te automatiseren, maar ik start gewoon mijn favoriete HaxM-emulator en gebruik de opdrachtregel:

adb install (yourapp)-x86-debug.apk

4, Autoriteit 9%

Als u genymotion gebruikt die u nodig hebt installeren van arm Translation and GAPPS


5, Autoriteit 6%

Dit is inderdaad een vreemde fout die kan worden veroorzaakt door Multideo’s uw app. Om er omheen te komen, gebruikt u het volgende blok in de build.gradle bestand:

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[rest of your gradle script]

6, Autoriteit 2%

op Android 8:

Apache.commons.io:2.4

geeft installatie_failed_no_matching_abis, probeer het te wijzigen in implementation 'commons-io:commons-io:2.6'En het zal werken.


7, Autoriteit 2%

Deze oplossing werkte voor mij. Probeer dit,
voeg de volgende regels toe aan het build.gradle-bestand van uw app

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

Antwoord 8, autoriteit 2%

Ik weet dat er hier veel antwoorden waren, maar de TL;DR-versie is deze (als je Xamarin Studio gebruikt):

  1. Klik met de rechtermuisknop op het Android-project in de oplossingsstructuur
  2. Selecteer Options
  3. Ga naar Android Build
  4. Ga naar het tabblad Advanced
  5. Controleer de architecturen die u in uw emulator gebruikt (Waarschijnlijk x86/ armeabi-v7a/ armeabi)
  6. Maak een geweldige app 🙂

Antwoord 9

ik had dit probleem bij het gebruik van de bitcoinJ-bibliotheek (org.bitcoinj:bitcoinj-core:0.14.7)
toegevoegd aan build.gradle (in module-app) een verpakkingsoptie binnen de Android-scope.
het heeft me geholpen.

android {
...
    packagingOptions {
        exclude 'lib/x86_64/darwin/libscrypt.dylib'
        exclude 'lib/x86_64/freebsd/libscrypt.so'
        exclude 'lib/x86_64/linux/libscrypt.so'
    }
}

Antwoord 10

dit werkte voor mij … Android > Gradle-scripts > build.gradle (Module:app)
binnen Android toevoegen*

android {
  //   compileSdkVersion 27
     defaultConfig {
        //
     }
     buildTypes {
        //
     }
    // buildToolsVersion '27.0.3'
    splits {
           abi {
                 enable true
                 reset()
                 include 'x86', 'armeabi-v7a'
                 universalApk true
               }
    }
 }


Antwoord 11

De opmerking van @enl8enmentnow zou een antwoord moeten zijn om het probleem op te lossen met behulp van genymotion:

Als je dit probleem op Genymotion hebt, zelfs als je de ARM-vertaler gebruikt, komt dat omdat je een x86 virtueel apparaat maakt zoals de Google Nexus 10. Kies in plaats daarvan een virtueel ARM-apparaat, zoals een van de aangepaste tablets.


Antwoord 12

Visual Studio mac – u kunt de ondersteuning hier wijzigen:


Antwoord 13

In mijn geval, in een xamarin-project, in visuele studio fout verwijderd door eigenschappen –> Android-opties en vink Use Share run Times en Use Fast Deployment aan, in sommige gevallen een van hen


Antwoord 14

Voor genymotion op mac kreeg ik een INSTALL_FAILED_NO_MATCHING_ABIS-fout tijdens het installeren van mijn apk.

In mijn project was er geen “APP_ABI”, maar ik heb het dienovereenkomstig toegevoegd en het bouwde slechts één apk voor beide architecturen, maar het werkte.
https://stackoverflow.com/a/35565901/3241111


Antwoord 15

In de Visual Studio Community-editie 2017 werkt de selectie van ondersteunde ABI’s uit Android-opties soms niet.

Controleer in dat geval of de .csproj de volgende regel heeft en geen dubbele regels in dezelfde buildconfiguraties.

<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>

Om te bewerken,

  1. Laad uw Android-project
  2. Klik met de rechtermuisknop en selecteer Project bewerken …
  3. Zorg ervoor dat u de bovenstaande regel slechts één keer in een build-configuratie hebt
  4. Opslaan
  5. Klik met de rechtermuisknop op uw Android-project en laad

16

In principe als je alles boven en toch hebt geprobeerd, heb je dezelfde fout “omdat ik ook voor deze kwestie geconfronteerd word, controleer dan welke .jar of .aar of module die je hebt toegevoegd, de ene bibliotheek die NDK heeft toegevoegd, en dat is Niet ondersteunen van 8.0 (Oreo) +, ook met behulp van Microsoft Signalr-socket-bibliotheek die de .jar-bestanden toevoegen en laatst dat ik de app niet installeert in Oreo, dan daarna verwijder ik die bibliotheek omdat er momenteel geen oplossing is op de pagina van de git en ik voor een andere.

Controleer de bibliotheek die u gebruikt en zoek erover als u die Eén nodig hebt.


17

Over het algemeen om erachter te komen welke bibliotheekafhankelijkheid incompatibele abi heeft,

  • Bouw een APK-bestand in Android Studio (menu Build & GT; Build Bundel (s) / APK (S) & GT; Build APK (S)) // Daadwerkelijk op 01.04.2020
  • Rename APK-bestand, vervanging van extensie “APK” met extensie “zip”
  • Pak ZIP-bestand uit op een nieuwe map
  • Ga naar Libs Map
  • Zoek uit welke * .jar bibliotheken met incompatibele abis zijn er

U kunt proberen om deze bibliotheken te upgraden / verwijderen / vervangen om installatie_failed_no_matching_abis op te lossen wanneer het APK-probleem

installeert


Antwoord 18

In mijn geval moest ik de x86-versie van de applicatie downloaden.

  1. Ga naar https://www.apkmirror.com/
  2. Zoeken naar de app
  3. Selecteer de eerste in de lijst
  4. Kijk bovenaan de pagina, waar is [Bedrijfsnaam] > [Applicatienaam] > [Versienummer]
  5. Klik op de applicatienaam
  6. Klik op ‘Alle varianten’
  7. De lijst moet een x86-variant bevatten om te downloaden

Antwoord 19

Ik heb met dit probleem te maken gehad toen ik overstapte van Android 7(Nougat) naar Android 8(Oreo).

Ik heb verschillende hierboven genoemde manieren geprobeerd en tot mijn pech werkte niets.

Dus ik heb het .apk-bestand gewijzigd in een .zip-bestand, het uitgepakt en de map libgevonden waarin dit bestand stond /x86_64/darwin/libscrypt.dylibdus om verwijder dit ik heb een code toegevoegd in mijn build.gradle-module onder het Android-gedeelte (dwz)

packagingOptions {
    exclude 'lib/x86_64/darwin/libscrypt.dylib'
    exclude 'lib/x86_64/freebsd/libscrypt.so'
    exclude 'lib/x86_64/linux/libscrypt.so'
}

Probleem opgelost


Antwoord 20

Dit is mij overkomen. Ik controleerde de SDK Manager en die vertelde me dat degene die ik gebruikte een update had. Ik heb het bijgewerkt en het probleem is verdwenen.


Antwoord 21

Heel laat, maar kwam dit net tegen. Dit is voor Xamarin.Android. Zorg ervoor dat u niet probeert te debuggen in de release-modus. Ik krijg precies dezelfde fout als ik in de release-modus ben en probeer te debuggen. Door simpelweg over te schakelen van release naar debug, kon de mijne correct worden geïnstalleerd.


Antwoord 22

In mijn geval helpt het instellen van de volgende opties me op weg


Antwoord 23

Op de een of andere manier lost dit het probleem zonder reden op.

./gradlew clean assembleen installeer vervolgens de app.


Antwoord 24

Voor het geval dat dit iemand zoals ik kan helpen.
Ik had hetzelfde probleem in Unity 3D. Ik probeerde de emulators van Android Studio te gebruiken.
Dus ik schakelde Target Architecture->x86 Architecture(hoewel verouderd) in Player Settings in en het werkte!

Other episodes