INSTALL_FAILED_NO_MATCHING_ABIS when install apk
Asked Answered
S

28

567

I tried to install my app into Android L Preview Intel Atom Virtual Device, it failed with error:

INSTALL_FAILED_NO_MATCHING_ABIS

What does it mean?

Severity answered 4/7, 2014 at 10:17 Comment(2)
Check this link for Android 3.0.1 issue : https://mcmap.net/q/74397/-install_failed_no_matching_abis-failed-to-extract-native-libraries-res-113Rivas
would an apk whose manifest has arm64-v8a work on an android phone which has : W-P220:/ # getprop ro.product.cpu.abi armeabi-v7a thank you for any hints/cluesDelphiadelphic
C
732

INSTALL_FAILED_NO_MATCHING_ABIS is when you are trying to install an app that has native libraries and it doesn't have a native library for your cpu architecture. For example if you compiled an app for armv7 and are trying to install it on an emulator that uses the Intel architecture instead it will not work.

Catenary answered 4/7, 2014 at 10:26 Comment(18)
I don't understand what changed. I could always use the Intel image (so haxm could make the emulator usable). Now with L I'm forced to use the ARM image?Subeditor
@DanielOchoa Its because they wont to maintain two images for a preview release. When L is officially launched I am sure there will be a Intel x86 image as well.Catenary
How to overcome on this problem. i am using Genymotion Emulater and install gapps and Genymotion-ARM-Translation_v1.1 still m getting this problem.Pirog
If you have this problem on Genymotion even when using the ARM translator it is because you are creating an x86 virtual device like the Google Nexus 10. Pick an ARM virtual device instead, like one of the Custom Tablets.Archaeo
Check out software.intel.com/en-us/blogs/2014/07/03/… for compiling your native library for Intel-based architecture.Estrada
Any idea why this won't work on a Nexus 9 running 5.1.1. It works fine on a Sony Xperia Z2 tablet running 4.4.2. Compiled Sdk 21, min 17 abd targeted 22.Mayenne
seems that ARM translator doesn't works on android 5.1, try with 4.3Edla
If you are using a version over 4 try this. techbae.com/…Trovillion
I had this issue while using the Android Studio emulator for a Nexus 5x on my Windows machine. For speed reasons [10x faster] the default is simulating the phone as if it is working with an Intel x86 architecture [Nexus 5x's Snapdragon 808 is actually based on ARM: tomshardware.com/reviews/lg-g4,4353-2.html ]. I fixed the error entering the AVD manager, selecting the simulated device that was giving me the error and clicking on Edit button where I set up an ARM (armeabi-v7a) architecture. After this change plus emulator reboot the installation went through with no issuesLeatherette
Is there a way to make an ARM app work on x86 / x86_64 Android emulator if we just have the apk file without the source code? Maybe by decompiling and recompiling the app to the x86 architecture?Crimmer
I get this error when I deploy from Xamarin/VS. The deployment (signed-apk file) seems to work just fine. I'm running on an Intel machine (Windows 10 enterprise).Petulance
I get this error when I try to deploy (to the Emulator) in Release mode only. YET, the signed APK can run no problem on the LG phones I use. SO how would I fix this error? I thought the APKs were architecture neutral in that they run on Android. How would I create an APK for all the different archiectures arouind?Petulance
Thank you! I was stuck meddling with environment variables, uninstalling and reinstalling SDKs, changing paths to the SDK for both Android Studio as well as Unity3d. Nothing worked, except changing the architecture from Arm7 to x86(deprecated). Now I have the emulator working for both Unity3d (Build and Run) as well as Android Studio!Linchpin
Using developer.android.com/studio/debug/apk-debugger to debug and review the existing APK could be helpful as well.Coates
I was trying to run some third party app (didnt have source code for it). Nothing helped, but this sweet little thing memuplay.com. Just download, and install the 64 bit version of android (32 is the default and it wont work with that). Then the apk can just be imported and installedMenashem
@Menashem according to virus Total 28 engines claim that this is malwareBladdernut
@yoelhalb I don't think so. I am still using It from time to time, and didn't get any warning. Maybe the hits are false alarm because the software is installing some "internal" stuff.Menashem
this was my case.Permeable
L
158

INSTALL_FAILED_NO_MATCHING_ABIS is when you are trying to install an app that has native libraries and it doesn't have a native library for your cpu architecture. For example if you compiled an app for armv7 and are trying to install it on an emulator that uses the Intel architecture instead it will not work.

Using Xamarin on Visual Studio 2015. Fix this issue by:

  1. Open your xamarin .sln
  2. Right click your android project
  3. Click properties
  4. Click Android Options
  5. Click the 'Advanced' tab
  6. Under "Supported architectures" make the following checked:

    1. armeabi-v7a
    2. x86
  7. save

  8. F5 (build)

Edit: This solution has been reported as working on Visual Studio 2017 as well.

Edit 2: This solution has been reported as working on Visual Studio 2017 for Mac as well.

Logbook answered 31/1, 2017 at 22:59 Comment(5)
That solution worked on Visual Studio 2017 too, for a Xamarin.Android project.Inchoation
This also worked for me when using an Android WebView App projectRobey
It seems on Xamarin, on every new day there is a new, unexpected obstackle preventing me from running my application (which worked yesterday). Since my csproj file is on dropbox, I could check version history, and this property was not in the file yesterday, it was missing altogether. Today, I had to add the x86 option in order to make app run. Why on earth is xamarin or android suddenly using different default values? This is so frustrating! Anyway, thanks to people like you, I can overcome and get on with work. Thanks a lot, and +1 for you!Antihero
Wish I could upvote more than once... Tested and working on VS 2017 for Mac.Humorous
For Visual Studio Community 2019 for Mac: 1. Right click on your android project 2. Click Options 3. Click Android Build 4. AdvancedBillow
F
98

I'm posting an answer from another thread because it's what worked well for me, the trick is to add support for both architectures :

Posting this because I could not find a direct answer and had to look at a couple of different posts to get what I wanted done...

I was able to use the x86 Accelerated (HAXM) emulator by simply adding this to my Module's build.gradle script Inside android{} block:

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

Run (build)... Now there will be a (yourapp)-x86-debug.apk in your output folder. I'm sure there's a way to automate installing upon Run but I just start my preferred HAXM emulator and use command line:

adb install (yourapp)-x86-debug.apk
Fash answered 17/11, 2015 at 16:5 Comment(5)
Failure [INSTALL_FAILED_NO_MATCHING_ABIS]Kwangchow
Didn't work for me and could not find (yourapp)-x86-debug.apk file in my project output.Chorography
I don't necessarily want to split APKs, is that an option? @DrissBounouarRathskeller
You can use the universal apk, presumably it has both architectures.Fash
still facing the same problemMorganmorgana
P
61

If you using Genymotion you need Installing ARM Translation and GApps

Plummer answered 20/11, 2014 at 7:18 Comment(3)
In some APIs that you used,You need add both "ARM Translation Installer v1.1" and "GApps for your Android version".Expiratory
UPDATE May 28th, 2017: This guide is no longer supported and probably doesn't work. Please don't use it or ask for support anymore. from xda-developersStanfield
You can follow this link to install ARM TranslationMatri
G
46

This is indeed a strange error that can be caused by multidexing your app. To get around it, use the following block in your app's build.gradle file:

android {
  splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
  }
  ...[rest of your gradle script]
Gallaher answered 31/3, 2016 at 16:24 Comment(10)
Hi. This made my project build successfully but still it gave me the same error. I am working on mac, genymotion. Also, in general, is this settings that you told are only for the debug version or also for release build?Birdt
@user3241111 This can be used for both debug and prod. Have you tried to clean your project. Or perhaps invalidate/restart Android Studio?Gallaher
I've not tried to clean build but I noticed that it didn't create -x86-debug.apk But I'll shorlty try ways- clean and also restarting android studio(It does Synch btw). Also, for build process I am using terminal and not Android Studio.Birdt
@user3241111 If you are using gradlew for command-line terminal builds, then you can still clean your project with gradle.Gallaher
I tried this solution, it worked.. In my project there wasn't any APP_ABI. But I added it accordingly and it build just one apk and it works. https://mcmap.net/q/74398/-install_failed_no_matching_abis-how-to-overcomeBirdt
How to clean build from command line? Actually, I thought that Android Studio is keeping my android setting in synch so I might not need to clean. I wanted to avoid this process bcoz it takes 10 min to build my project(cocos2d-x library). I've just started to setup this thing.Birdt
Also, I just added enabled gradle daemon and it has paced up the process so much... Anyways, thanks for your support :)Birdt
In my case if i add above code , it shows Error:Execution failed for task ':app:processArmeabi-v7aDebugResources'. > Cannot invoke method replaceAll() on null objectDizzy
@Dizzy Perform a clean of your project and reassemble from command-line. Also, make sure you have the latest Gradle tools and build tools in your project.Gallaher
%100 working. thank youMarymarya
C
25

On Android 8:

apache.commons.io:2.4

gives INSTALL_FAILED_NO_MATCHING_ABIS, try to change it to implementation 'commons-io:commons-io:2.6' and it will work.

Causality answered 14/9, 2018 at 17:14 Comment(1)
Thank you so much, you save my day. I dont know why I got: implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'Scutum
K
15

This solution worked for me. Try this, add following lines in your app's build.gradle file

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a'
        universalApk true
    }
}
Kimberleykimberli answered 15/9, 2017 at 6:14 Comment(0)
H
12

I know there were lots of answers here, but the TL;DR version is this (If you're using Xamarin Studio):

  1. Right click the Android project in the solution tree
  2. Select Options
  3. Go to Android Build
  4. Go to Advanced tab
  5. Check the architectures you use in your emulator (Probably x86 / armeabi-v7a / armeabi)
  6. Make a kickass app :)
Help answered 7/9, 2016 at 6:16 Comment(0)
L
11

i had this problem using bitcoinJ library (org.bitcoinj:bitcoinj-core:0.14.7) added to build.gradle(in module app) a packaging options inside the android scope. it helped me.

android {
...
    packagingOptions {
        exclude 'lib/x86_64/darwin/libscrypt.dylib'
        exclude 'lib/x86_64/freebsd/libscrypt.so'
        exclude 'lib/x86_64/linux/libscrypt.so'
    }
}
Leviticus answered 26/11, 2018 at 21:22 Comment(2)
Thanks. It helped me with Bitcoin J Integration.Signatory
Thanks you so much i am try many solution but this solution works for me for me My issue is for scrypt-1.4.0.jar not install in android Pie version (Nokia 7.1)DeviceInformation
D
9

this worked for me ... Android > Gradle Scripts > build.gradle (Module:app) add inside android*

android {
  //   compileSdkVersion 27
     defaultConfig {
        //
     }
     buildTypes {
        //
     }
    // buildToolsVersion '27.0.3'

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

enter image description here

Duwe answered 14/8, 2018 at 22:31 Comment(0)
P
7

The comment of @enl8enmentnow should be an answer to fix the problem using genymotion:

If you have this problem on Genymotion even when using the ARM translator it is because you are creating an x86 virtual device like the Google Nexus 10. Pick an ARM virtual device instead, like one of the Custom Tablets.

Plataea answered 15/6, 2015 at 9:23 Comment(1)
I am working on mac and probably it's build for x86 virtual device. I tried with genymotion custom tablet also, it didn't work, and gave same error while installingBirdt
H
6

Visual Studio mac - you can change the support here:

enter image description here

Heliocentric answered 21/6, 2017 at 20:46 Comment(0)
P
4

this problem is for CPU Architecture and you have some of the abi in the lib folder.

go to build.gradle for your app module and in android, block add this :

  splits {
            abi {
                enable true
                reset()
                include 'x86', 'armeabi-v7a'
                universalApk true
            }
        }
Parasite answered 21/12, 2020 at 16:4 Comment(0)
H
4

In my case(Windows 10, Flutter, Android Studio), I simply created a new emulator device in Android Studio. This time, I have chosen x86_64 ABI instead of only x86. It solved my issue. My emulator devices are shown in the screenshot below. New and Old Emulator Devices

Hurtle answered 27/9, 2021 at 22:15 Comment(2)
From your image how i can get the pixel 5 api 31 virtual devices ? where do i download from or how to add manually on android studio ? because i have only pixel 5 with api level 30 onlyOverdone
didn't work for me , seems like it's hit or miss thing.Simulate
M
4

Hi if you are using this library;

implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'

Replace it with:

implementation 'commons-io:commons-io:2.6'

And the problem will be fixed.

Manchukuo answered 10/7, 2022 at 23:10 Comment(0)
R
3

In the visual studio community edition 2017, sometimes the selection of Supported ABIs from Android Options wont work.

In that case please verify that the .csproj has the following line and no duplicate lines in the same build configurations.

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

In order to edit,

  1. Unload your Android Project
  2. Right click and select Edit Project ...
  3. Make sure you have the above line only one time in a build configuration
  4. Save
  5. Right click on your android project and Reload
Rhetorician answered 22/3, 2018 at 5:58 Comment(1)
I think the same happens in 2019 too. Just like you, I have to specify explicit all supported ABIs. When they are all selected in options menu, the property in the .csproj file is empty. And the documentation says that in Release mode by default targets armeabi-v7a. linkHowrah
P
3

In my case, in a xamarin project, in visual studio error removed by selecting properties --> Android Options and check Use Share run Times and Use Fast Deployment, in some cases one of them enter image description here

Palazzo answered 27/10, 2018 at 0:29 Comment(0)
V
3

In my case, I needed to download the x86 version of the application.

  1. Go to https://www.apkmirror.com/
  2. Search for the app
  3. Select the first one in the list
  4. Look at the top of the page, where is has [Company Name] > [Application Name] > [Version Number]
  5. Click the Application Name
  6. Click 'All Variants'
  7. The list should contain an x86 variant to download
Vitrescence answered 22/12, 2018 at 5:9 Comment(0)
B
2

For genymotion on mac, I was getting INSTALL_FAILED_NO_MATCHING_ABIS error while installing my apk.

In my project there wasn't any "APP_ABI" but I added it accordingly and it built just one apk for both architectures but it worked. https://mcmap.net/q/74398/-install_failed_no_matching_abis-how-to-overcome

Birdt answered 10/6, 2016 at 20:22 Comment(0)
U
2

Basically if you tried Everything above and still you have the same error "Because i am facing this issue before too" then check which .jar or .aar or module you added may be the one library using ndk , and that one is not supporting 8.0 (Oreo)+ , likewise i am using Microsoft SignalR socket Library adding its .jar files and latterly i found out app not installing in Oreo then afterwards i remove that library because currently there is no solution on its git page and i go for another one.

So please check the library you are using and search about it if you eagerly needed that one.

Unwholesome answered 15/11, 2018 at 8:27 Comment(0)
R
2

In general case to find out which library dependency has incompatible ABI,

  • build an APK file in Android Studio (menu Build > Build Bundle(s)/APK(s) > Build APK(s)) // actual on 01.04.2020
  • rename APK file, replacing extension "apk" with extension "zip"
  • unpack zip file to a new folder
  • go to libs folder
  • find out which *.jar libraries with incompatible ABIs are there

You may try to upgrade version / remove / replace these libraries to solve INSTALL_FAILED_NO_MATCHING_ABIS when install apk problem

Recess answered 13/3, 2020 at 9:37 Comment(0)
R
2

Just in case, this might help someone like me. I had this same issue in Unity 3D. I was attempting to use the emulators from Android Studio. So I enabled Target Architecture->x86 Architecture(although deprecated) in Player Settings and it worked!

Raybin answered 15/9, 2020 at 15:58 Comment(0)
C
1

I faced this issue when moved from Android 7(Nougat) to Android 8(Oreo).

I have tried several ways listed above and to my bad luck nothing worked.

So i changed the .apk file to .zip file extracted it and found lib folder with which this file was there /x86_64/darwin/libscrypt.dylib so to remove this i added a code in my build.gradle module below android section (i.e.)

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

Cheers issue solved

Cila answered 22/3, 2019 at 6:11 Comment(0)
B
0

This happened to me. I checked the SDK Manager and it told me the one I was using had a update. I updated it and the problem went away.

Baobaobab answered 18/6, 2018 at 3:1 Comment(0)
G
0

Quite late, but just ran into this. This is for Xamarin.Android. Make sure that you're not trying to debug in release mode. I get that exact same error if in release mode and attempting to debug. Simply switching from release to debug allowed mine to install properly.

Grandiloquent answered 13/11, 2018 at 1:46 Comment(0)
O
0

In my case setting folowing options helpet me out

enter image description here

Ormuz answered 29/7, 2019 at 12:55 Comment(0)
D
0

Somehow, this fix the issue out of no reason.

./gradlew clean assemble and then install the app.

Dehlia answered 16/7, 2020 at 7:57 Comment(0)
S
0

I had the same issue. Running the Android Virtual Device using the command line, instead of Android Studio worked for me:

  1. List android virtual devices

    $ emulator -list-avds
    
  2. Run the device.

    $ emulator -avd <device_name> -writable-system -no-snapshot
    
Sepulchre answered 1/4 at 15:43 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.