APK 설치시 INSTALL_FAILED_NO_MATCHING_ABIS


답변:


633

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


1
@DanielOchoa 미리보기 릴리스를 위해 두 개의 이미지를 유지하지 않기 때문입니다. L이 공식적으로 출시되면 Intel x86 이미지도있을 것입니다.
Hiemanshu Sharma

1
이 문제를 극복하는 방법. Genymotion Emulater를 사용하고 있으며 간격을 설치하고 Genymotion-ARM-Translation_v1.1을 계속 사용하면이 문제가 발생합니다.
Prashant Maheshwari Andro

3
ARM 변환기를 사용할 때도 Genymotion에서이 문제가 발생하면 Google Nexus 10과 같은 x86 가상 장치를 생성하기 때문입니다. 대신 Custom Tablets와 같은 ARM 가상 장치를 선택하십시오.
enl8enmentnow

1
5.1.1을 실행하는 Nexus 9에서 왜 이것이 작동하지 않는지 알 수 있습니다. 4.4.2를 실행하는 Sony Xperia Z2 태블릿에서 제대로 작동합니다. 컴파일 된 SDK 21, 최소 17 abd 목표 22.
Bear

3
Windows 컴퓨터에서 Nexus 5x에 Android Studio 에뮬레이터를 사용하는 동안이 문제가 발생했습니다. 속도가 10 배 빠르므로 기본값은 전화가 마치 Intel x86 아키텍처를 사용하는 것처럼 시뮬레이션하는 것입니다 [Nexus 5x의 Snapdragon 808은 실제로 ARM을 기반으로합니다 : tomshardware.com/reviews/lg-g4,4353-2.html ] . AVD 관리자에 들어가는 오류를 수정하여 오류가 발생한 시뮬레이션 된 장치를 선택하고 ARM (armeabi-v7a) 아키텍처를 설정 한 편집 버튼을 클릭했습니다. 이 변경 및 에뮬레이터 재부팅 후 문제없이 설치가 진행되었습니다
Antonino

150

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 에서도 작동하는 것으로보고되었습니다 .


6
이 솔루션은 Xamarin.Android 프로젝트의 Visual Studio 2017에서도 작동했습니다.
corentinaltepe 2018 년

1
이것은 Android WebView 앱 프로젝트를 사용할
때도 효과적이었습니다.

4
Xamarin에는 매일 새로운 응용 프로그램을 실행하지 못하게하는 예기치 않은 새로운 장애물이 있습니다 (어제 작동했습니다). 내 csproj 파일이 dropbox에 있기 때문에 버전 기록을 확인할 수 있었고이 속성이 어제 파일에 없었으므로 완전히 누락되었습니다. 오늘은 앱을 실행하기 위해 x86 옵션을 추가해야했습니다. 왜 지구상에서 xamarin 또는 android가 갑자기 다른 기본값을 사용합니까? 너무 실망입니다! 어쨌든 당신 같은 사람들 덕분에 나는 일을 극복하고 극복 할 수 있습니다. 고마워요, 당신을 위해 +1!
TMan

2
한 번 이상 공표 할 수 있으면 좋겠다 ... Mac 용 VS 2017에서 테스트하고 작업했습니다.
JordiVilaplana

Mac 용 Visual Studio Community 2019 : 1. Android 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다. 2. 옵션을 클릭합니다. 3. Android 빌드를 클릭합니다. 4. 고급
null

87

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

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

모듈의 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

2
실패 [INSTALL_FAILED_NO_MATCHING_ABIS]
abbasalim

나를 위해 작동하지 않아 (yourapp)-x86-debug.apk내 프로젝트 출력에서 ​​파일을 찾을 수 없습니다 .
Eido95

반드시 APK를 나누고 싶지는 않습니다. 옵션입니까? @DrissBounouar
ericn

범용 APK를 사용할 수 있습니다. 아마도 두 아키텍처가 모두 있습니다.
Driss Bounouar

여전히 같은 문제에 직면
Vikash Parajuli

61

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


사용한 일부 API에서 "ARM Translation Installer v1.1"과 "Android 버전 용 GApp"을 모두 추가해야합니다.
saneryee

4
2017 년 5 월 28 일 업데이트 :이 가이드는 더 이상 지원되지 않으며 작동하지 않을 수 있습니다. 더 이상 사용하지 않거나 지원을 요청하십시오. xda 개발자로부터
AndroidCoolestRulest

1
이 링크클릭 하면 ARM 번역
Devansh Maurya

37

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

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

1
안녕. 이것은 내 프로젝트를 성공적으로 만들었지 만 여전히 같은 오류가 발생했습니다. 나는 mac, genymotion에서 일하고 있습니다. 또한 일반적으로이 설정은 디버그 버전 또는 릴리스 빌드에만 적용됩니까?
myDoggyWritesCode

@ user3241111 디버그 및 제품 모두에 사용할 수 있습니다. 프로젝트를 청소하려고 했습니까? 아니면 Android Studio를 무효화 / 다시 시작 하시겠습니까?
IgorGanapolsky 2016 년

1
@ user3241111 명령 행 터미널 빌드에 gradlew를 사용하는 경우에도 gradle로 프로젝트를 정리할 수 있습니다.
IgorGanapolsky 2016 년

1
이 솔루션을 사용해 보았습니다. 효과가 없었습니다. 내 프로젝트에는 APP_ABI가 없었습니다. 그러나 그에 따라 추가하고 단 하나의 APK를 작성하면 작동합니다. stackoverflow.com/a/35565901/3241111
myDoggyWritesCode

1
또한 방금 활성화 된 gradle 데몬을 추가했으며 프로세스가 너무
빨라졌습니다

11

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

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

11

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

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

11

안드로이드 8 :

apache.commons.io:2.4

INSTALL_FAILED_NO_MATCHING_ABIS를 제공하고 2.5 또는 2.6으로 변경하면 작동하거나 주석 처리됩니다.


6
정말 고마워, 내 하루를 구해줘 내가 가진 이유는 잘 모릅니다 : 구현 'org.apache.directory.studio:org.apache.commons.io:2.4를'
피 에릭 HYMBERT에게

7

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

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


1
나는 Mac에서 일하고 있으며 아마도 x86 가상 장치 용으로 빌드되었을 것입니다. genymotion 사용자 정의 타블렛으로 시도했지만 작동하지 않았으며 설치하는 동안 동일한 오류가 발생했습니다
myDoggyWritesCode

7

이것은 나를 위해 일했습니다 ... 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
               }
    }
 }

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


6

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

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


6

안드로이드 범위 내에서 패키징 옵션을 build.gradle (모듈 앱)에 추가 한 bitcoinJ 라이브러리 (org.bitcoinj : bitcoinj-core : 0.14.7)를 사용 하여이 문제가 발생했습니다. 그것은 나를 도왔다.

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

감사. Bitcoin J Integration에 도움이되었습니다.
Umer Kiani

감사합니다 당신은 너무 많은 내가 많은 해결책을 시도해보십시오 모르지만,이 솔루션은 나를 내 문제에 대한 나를 위해 작동 장치 scrypt-1.4.0.jar 안드로이드 파이 버전 (노키아 7.1)를 설치하지입니다
사가르 Pithiya

3

필자의 경우 xamarin 프로젝트에서 속성-> Android 옵션을 선택하여 Visual Studio 오류가 제거되고 런타임 공유 사용 및 빠른 배포 사용 (일부 경우 중 하나)을 선택하여 오류를 제거했습니다. 여기에 이미지 설명을 입력하십시오


2

Mac에서 genymotion의 경우 APK를 설치하는 동안 INSTALL_FAILED_NO_MATCHING_ABIS 오류가 발생했습니다.

내 프로젝트에는 "APP_ABI"가 없었지만 적절하게 추가했으며 두 아키텍처 모두에 대해 하나의 APK 만 작성했지만 작동했습니다. https://stackoverflow.com/a/35565901/3241111


2

Visual Studio Community Edition 2017에서는 Android 옵션에서 지원되는 ABI를 선택하지 못하는 경우가 있습니다.

이 경우 .csproj에 동일한 빌드 구성에 다음 줄이 있고 중복 줄이 없는지 확인하십시오.

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

편집하려면

  1. 당신의 안드로이드 프로젝트를 언로드
  2. 마우스 오른쪽 버튼을 클릭하고 프로젝트 편집 ...을 선택하십시오.
  3. 빌드 구성에서 위의 행이 한 번만 있는지 확인하십시오
  4. 저장
  5. 안드로이드 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 다시로드하십시오.

1

기본적으로 위의 모든 것을 시도했지만 여전히이 문제에 직면하고 있기 때문에 동일한 오류가 발생하면 추가 한 .jar 또는 .aar 또는 모듈이 ndk를 사용하는 하나의 라이브러리 일 수 있으며 8.0을 지원하지 않는지 확인하십시오 (Oreo) +, 마찬가지로 .jar 파일을 추가하는 Microsoft SignalR 소켓 라이브러리를 사용하고 있으며 나중에 Oreo에 설치되지 않는 앱을 ​​찾은 후 현재 해당 git 페이지에 솔루션이 없기 때문에 해당 라이브러리를 제거하고 다른 라이브러리로 이동합니다. .

따라서 사용중인 라이브러리를 확인하고 열심히 필요한 경우 검색하십시오.


1

Android 7 (Nougat)에서 Android 8 (Oreo)로 옮길 때이 문제에 직면했습니다.

나는 위에 열거 된 여러 가지 방법을 시도했지만 내 불운에는 아무것도 효과가 없었습니다.

그래서 .apk 파일을 .zip 파일로 변경하여 압축을 풀고이 파일이있는 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'
}

건배 문제 해결


1

일반적으로 어떤 라이브러리 종속성이 호환되지 않는 ABI인지 확인하려면

  • Android Studio에서 APK 파일 빌드 (메뉴 빌드> 빌드 번들 / APK (들)> 빌드 APK (들)) // 01.04.2020에 실제
  • 확장자 "apk"를 확장자 "zip"으로 대체하여 APK 파일 이름 바꾸기
  • zip 파일을 새 폴더로 압축 해제
  • libs 폴더로 이동
  • 호환되지 않는 ABI가있는 * .jar 라이브러리가 있는지 확인하십시오.

APK 문제를 설치할 때 버전을 업그레이드 / 제거 / 교체하여 INSTALL_FAILED_NO_MATCHING_ABIS를 해결할 수 있습니다


0

이것은 나에게 일어났다. SDK 관리자를 확인한 결과 사용중인 업데이트가 있다고 알려주었습니다. 나는 그것을 업데이트했고 문제는 사라졌다.


0

꽤 늦었지만이 문제가 발생했습니다. 이것은입니다 Xamarin.Android. 릴리스 모드에서 디버그를 시도하지 않아야합니다. 릴리스 모드에서 디버깅을 시도하는 경우에도 동일한 오류가 발생합니다. 릴리스에서 디버그로 전환하면 광산을 올바르게 설치할 수 있습니다.


0

필자의 경우 x86 버전의 응용 프로그램을 다운로드해야했습니다.

  1. https://www.apkmirror.com/으로 이동
  2. 앱 검색
  3. 목록에서 첫 번째를 선택하십시오
  4. [회사 이름]> [애플리케이션 이름]> [버전 번호]가있는 페이지 상단을보십시오.
  5. 응용 프로그램 이름을 클릭하십시오
  6. '모든 변형'을 클릭하십시오
  7. 이 목록에는 다운로드 할 x86 변형이 포함되어야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.