Install_failed_no_matching_abis failed to extract native libraries res 113

Issue

I have an issue with third party libraries that are imported to my project.

I read quite a lot of articles about that but do not get any information how properly handle it.

I put my classes .so to the folder.

Install_failed_no_matching_abis failed to extract native libraries res 113

Problem is that the i try to run the app i receive

[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113]

Solution

July 25, 2019 :

I was facing this issue in Android Studio 3.0.1 :

After checking lots of posts, here is Fix which works:

Go to module build.gradle and within Android block add this script:

splits {
    abi {
        enable true
        reset()
        include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'
        universalApk true
    }
}

Simple Solution. Feel free to comment. Thanks.

Answered By - Shobhakar Tiwari

I have an issue with third party libraries that are imported to my project.

I read quite a lot of articles about that but do not get any information how properly handle it.

I put my classes .so to the folder.

Install_failed_no_matching_abis failed to extract native libraries res 113

Problem is that the i try to run the app i receive

[INSTALL_FAILED_NO_MATCHING_ABIS: Failed to extract native libraries, res=-113] 

July 25, 2019 :

I was facing this issue in Android Studio 3.0.1 :

After checking lots of posts, here is Fix which works:

Go to module build.gradle and within Android block add this script:

splits {     abi {         enable true         reset()         include 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'mips', 'mips64', 'arm64-v8a'         universalApk true     } } 

Simple Solution. Feel free to comment. Thanks.

I faced same problem in emulator, but I solved it like this:

Create new emulator with x86_64 system image(ABI)

select device

select x86_64

That's it.

This error indicates the system(Device) not capable for run the application.

I hope this is helpful to someone.

Original address: https://blog.csdn.net/Leafage_M/article/details/86675699

related articles

1. The installation of the INSTALL_FAILED_NO_MATCHING_ABIS installation package fails, and the return code res=-113 is the solution at station B barrage---- https://blog.csdn.net/weixin_40845165/article/details/79515245

1. The origin of the problem.
This error report appeared when using AndroidStudio to install an app on the genymotion emulator:

At first, I didn’t look at the previous error prompt carefully. I thought it was because the previous data was not cleaned up, so I clicked OK and saw an error prompt I encountered before.


Subconsciously follow the previous errors for processing and troubleshooting. But to no avail, this problem still occurred after deleting the emulator and recreating it, and realized that this is a brand new problem. Use my Android real machine to run without error, then the problem lies in the emulator.

2. The cause of the problem.
So I checked and found:

Because native libraries that are inconsistent with the current CPU architecture are used in the installed APP, an error is reported, because most smartphones now use the ARM architecture. Although android supports the ARM and x86 architectures, their instruction sets There is a difference. The APP uses ARM's native library when developing, while we use the x86 CPU when creating the simulator with AVD, which leads to an error. Therefore, if the APP is compiled under the x86 architecture, we will create an x86cpu emulator, if the APP is compiled on the ARM architecture, we will create an ARMcpu emulator.

The problem is very clear. It is caused by the inconsistency between the native libraries and the CPU architecture of the emulator in the current app. The genymotion emulator created by default only supports the x86 architecture and does not support the arm architecture, so it seems that this app uses support Some libraries of the arm architecture cannot be installed on x86. The fact is that the .so file is used in the source code. When an application is installed on the device, only the .so file corresponding to the CPU architecture supported by the device will be installed. Therefore, the corresponding arm part of the file cannot be installed and the installation fails.

3. Solutions.
Then there are two ways to solve the problem:

Let genymotion emulator support arm architecture.

Since you are creating an x86 emulator, you need to use a conversion package to support arm.

Here are some resources on the Internet:

Link: https://pan.baidu.com/s/15UpeGLOsaCpWDkmJe-fjjw
Extraction code: fx4r

I used the ARM_Translation_Marshmallow provided inside to complete the conversion, using the simulator version as follows:

Start the simulator, drag the zip file directly into the simulator to install:

Click OK


Successful installation:


Then we restart the emulator and try to install the app again. It may be slower when restarting.

Let the app project include both arm and x86 files.

You can add the following content to the android{} in the build.gradle of the app:

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


The corresponding meanings are as follows:


The above two methods can solve the problems that I have encountered.

Reference article:
https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk
http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits (ABI related knowledge)
https://www.cnblogs.com/janehlp/p/7473240.html (.so file related knowledge)
https://www.jb51.net/article/99714. htm
————————————————
Copyright Statement: This article is the original article of the CSDN blogger "Fancheng Fallen Leaf", following the CC 4.0 BY-SA copyright agreement, please attach the original source link for reprinting And this statement.
Original link: https://blog.csdn.net/Leafage_M/article/details/86675699