[android] 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
    }
}