Programming

APK 설치시 INSTALL_FAILED_NO_MATCHING_ABIS

procodes 2020. 2. 17. 22:24
반응형

APK 설치시 INSTALL_FAILED_NO_MATCHING_ABIS


Android L Preview Intel Atom Virtual Device에 앱을 설치하려고 시도했지만 오류가 발생하여 실패했습니다.

INSTALL_FAILED_NO_MATCHING_ABIS

무슨 뜻인가요?


INSTALL_FAILED_NO_MATCHING_ABIS네이티브 라이브러리가 있고 cpu 아키텍처를위한 네이티브 라이브러리가없는 앱을 설치하려고 할 때입니다. 예를 들어 armv7 용 앱을 컴파일 하고 인텔 아키텍처 를 사용하는 에뮬레이터에 설치하려고하면 작동하지 않습니다.


INSTALL_FAILED_NO_MATCHING_ABIS는 네이티브 라이브러리가 있고 cpu 아키텍처를위한 네이티브 라이브러리가없는 앱을 설치하려고 할 때입니다. 예를 들어 armv7 용 앱을 컴파일하고 인텔 아키텍처를 사용하는 에뮬레이터에 설치하려고하면 작동하지 않습니다.

Visual Studio 2015에서 Xamarin 사용. 다음 방법으로이 문제를 해결하십시오.

  1. xamarin .sln을 엽니 다
  2. 안드로이드 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
  3. 클릭 속성
  4. Android 옵션을 클릭하십시오
  5. '고급'탭을 클릭하십시오
  6. "지원되는 아키텍처"에서 다음을 확인하십시오.

    1. armeabi-v7a
    2. x86
  7. 저장

  8. F5 (빌드)

편집 : 이 솔루션은 Visual Studio 2017에서도 작동하는 것으로보고되었습니다.

편집 2 : 이 솔루션은 Mac 용 Visual Studio 2017 에서도 작동하는 것으로보고되었습니다 .


다른 스레드에서 대답을 게시하고 있습니다. 왜냐하면 잘 작동했기 때문입니다. 트릭은 두 아키텍처 모두에 대한 지원을 추가하는 것입니다.

직접 답변을 찾을 수 없어서 원하는 것을 얻으려면 몇 가지 다른 게시물을보아야했기 때문에 이것을 게시하는 중입니다 ...

모듈의 build.gradle 스크립트 Inside android {} 블록에 간단히 추가하여 x86 Accelerated (HAXM) 에뮬레이터를 사용할 수있었습니다.

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

Run (build) ... 이제 출력 폴더에 (yourapp) -x86-debug.apk가 있습니다. Run시 설치를 자동화하는 방법이 있다고 확신하지만 선호하는 HAXM 에뮬레이터를 시작하고 명령 줄을 사용하십시오.

adb install (yourapp)-x86-debug.apk

Genymotion을 사용하는 경우 ARM 번역 및 GApp 설치 가 필요합니다.


실제로 앱을 멀티 덱싱하여 발생할 수있는 이상한 오류입니다. 이 문제를 해결하려면 앱의 build.gradle 파일 에서 다음 블록을 사용 하십시오.

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

여기에 많은 답변이 있지만 TL; DR 버전은 다음과 같습니다 (Xamarin Studio를 사용하는 경우).

  1. 솔루션 트리에서 Android 프로젝트를 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 고르다 Options
  3. 이동 Android Build
  4. Advanced탭으로 이동
  5. 에뮬레이터에서 사용하는 아키텍처를 확인하십시오 (아마도 x86/ armeabi-v7a/ armeabi)
  6. kickass 앱 만들기 :)

이 솔루션은 저에게 효과적이었습니다. 이것을 시도하고 앱의 build.gradle 파일 에 다음 줄을 추가 하십시오

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

@ enl8enmentnow의 의견은 genymotion을 사용하여 문제를 해결하기위한 답변이어야합니다.

ARM 변환기를 사용할 때도 Genymotion에서이 문제가 발생하면 Google Nexus 10과 같은 x86 가상 장치를 생성하기 때문입니다. 대신 사용자 정의 태블릿과 같은 ARM 가상 장치를 선택하십시오.


Visual Studio mac-여기에서 지원을 변경할 수 있습니다.

여기에 이미지 설명을 입력하십시오


이것은 나를 위해 일했습니다 ... Android> Gradle Scripts> build.gradle (Module : app) android * 안에 추가

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

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

여기에 이미지 설명을 입력하십시오


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

On Android 8:

apache.commons.io:2.4

it gives INSTALL_FAILED_NO_MATCHING_ABIS, try to change it to 2.5 or 2.6 and it will work or comment it out.


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 여기에 이미지 설명을 입력하십시오


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://stackoverflow.com/a/35565901/3241111


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

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.


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.


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.


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

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.

내가 .zip 파일로 된 .apk 파일을 변경 그래서 그것을 추출 발견 lib에 이 파일이이었다있는 폴더 /x86_64/darwin/libscrypt.dylib 내에서 코드를 추가이 제거 너무 build.gradle의 안드로이드 섹션 아래 모듈 (즉, )

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

건배 문제 해결


내 경우에는 다음 옵션을 설정하면 도움이됩니다.

여기에 이미지 설명을 입력하십시오

참고 URL : https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk

반응형