pk 설치 시 INSTALL_FAILED_NO_MATCHING_ABIS
Android L Preview Intel Atom Virtual Device에 앱을 설치하려고 했는데 오류가 발생하여 실패했습니다.
설치_실패_NO_MATCHING_ABIS
그것은 무엇을 뜻하나요?
INSTALL_FAILED_NO_MATCHING_ABIS
네이티브 라이브러리가 있는 앱을 설치하려고 할 때 CPU 아키텍처를 위한 네이티브 라이브러리가 없는 경우입니다.예를 들어 armv7용 앱을 컴파일한 후 Intel 아키텍처를 사용하는 에뮬레이터에 설치하려고 하면 작동하지 않습니다.
INSTALL_FAILED_NO_MATCHING_ABIS는 네이티브 라이브러리가 있는 앱을 설치하려고 할 때 CPU 아키텍처를 위한 네이티브 라이브러리가 없는 경우입니다.예를 들어 armv7용 앱을 컴파일한 후 Intel 아키텍처를 사용하는 에뮬레이터에 설치하려고 하면 작동하지 않습니다.
Visual Studio 2015에서 Xamarin을 사용합니다.이 문제 해결 방법:
- xamarin.sln을 엽니다.
- Android 프로젝트를 마우스 오른쪽 단추로 클릭합니다.
- 속성 클릭
- Android 옵션 클릭
- '고급' 탭을 클릭합니다.
"지원되는 아키텍처"에서 다음을 선택합니다.
- armeabi-v7a
- x86
절약하다
- F5(빌드)
편집: 이 솔루션은 Visual Studio 2017에서도 작동하는 것으로 보고되었습니다.
편집 2: 이 솔루션은 Mac용 Visual Studio 2017에서도 작동하는 것으로 보고되었습니다.
다른 스레드의 답변을 게시하는 이유는 두 아키텍처 모두에 대한 지원을 추가하는 것이 효과적이었기 때문입니다.
직접적인 답을 찾을 수 없어서 제가 하고 싶은 일을 하기 위해 몇 개의 다른 게시물을 봐야 했기 때문에 이 글을 올리는 것은...
이것을 내 모듈의 build.gradle 스크립트 Android{} 블록 내부에 추가하기만 하면 x86 Accelerated(HAXM) 에뮬레이터를 사용할 수 있었습니다.
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
실행(빌드)...이제 (당신의 앱)-x86-디버그가 있을 것입니다.출력 폴더에 pk를 입력합니다.실행 시 설치를 자동화할 수 있는 방법이 있을 것으로 확신하지만 기본 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]
Android 8의 경우:
apache.commons.io:2.4
INSTALL_FAILED_NO_MATCHING_ABIS를하고 INSTALL_FAILED_로 .NO_MATCHING_ABIS를 지정합니다.implementation 'commons-io:commons-io:2.6'
효과가 있을 겁니다
이 해결책은 저에게 효과가 있었습니다.앱의 build.gradle 파일에 다음 행을 추가합니다.
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
여기에 많은 답변이 있었지만 TL;DR 버전은 다음과 같습니다(Xamarin Studio를 사용하는 경우).
- 솔루션 트리에서 Android 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
- 를 선택합니다.
Options
- 에 가다
Android Build
- 에 가다
Advanced
- 에뮬이아아사확처키인텍는도용마서에터하레아확▁check(prob)인ures▁the).
x86
/armeabi-v7a
/armeabi
) - kickass 앱 만들기 :)
저는 안드로이드 스코프 내의 패키지 옵션인 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'
}
}
이것은 나에게 효과가 있었습니다...Android > Gradle Scripts > build.gradle (모듈:앱) 안드로이드 내부 추가*
android {
// compileSdkVersion 27
defaultConfig {
//
}
buildTypes {
//
}
// buildToolsVersion '27.0.3'
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
@enl8enment의 의견은 이제 genymotion을 사용하여 문제를 해결하는 답이 되어야 합니다.
만약 당신이 ARM 번역기를 사용하는 동안에도 지니모션에서 이 문제가 발생한다면, 그것은 당신이 구글 넥서스 10과 같은 x86 가상 장치를 만들고 있기 때문입니다.대신 사용자 지정 태블릿 중 하나와 같은 ARM 가상 장치를 선택합니다.
Visual Studio Mac - 여기서 지원을 변경할 수 있습니다.
이 문제는 CPU 아키텍처에 대한 것이며 몇 가지 문제가 있습니다.abi
에 시대에lib
폴더를 누릅니다.
에 가다build.gradle
당신을 위하여app module
그고리로.android
this : " 록추가블:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
Visual Studio Community Edition 2017에서는 Android Options에서 지원되는 ABI를 선택할 수 없는 경우가 있습니다.
이 경우 .csproj에 다음 줄이 있고 동일한 빌드 구성에 중복된 줄이 없는지 확인하십시오.
<AndroidSupportedAbis>armeabi;armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
편집하기 위해서는
- Android 프로젝트 언로드
- 마우스 오른쪽 버튼을 클릭하고 프로젝트 편집...을 선택합니다.
- 빌드 구성에서 위 라인이 한 번만 있는지 확인합니다.
- 절약하다
- 안드로이드 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 다시 로드합니다.
나의 경우, xamarin 프로젝트에서, 비주얼 스튜디오에서 속성을 선택하여 오류를 제거했습니다. --> Android 옵션을 선택하고 실행 시간 공유 및 빠른 배포 사용을 선택하십시오. 어떤 경우에는 그 중 하나입니다.
저의 경우, x86 버전의 애플리케이션을 다운로드해야 했습니다.
- https://www.apkmirror.com/ 으로 이동합니다.
- 앱 검색
- 목록에서 첫 번째 항목 선택
- 페이지 상단을 보세요. 여기서 is has [회사명] > [애플리케이션명] > [버전번호]
- 응용 프로그램 이름 클릭
- '모든 변형 모델'을 클릭합니다.
- 목록에는 다운로드할 x86 변형이 포함되어야 합니다.
mac에서 genymotion의 경우 apk를 설치하는 동안 INSTALL_FAILED_NO_MATCHING_ABIS 오류가 발생했습니다.
제 프로젝트에는 "APP_ABI"가 없었지만 그에 따라 이를 추가했고 두 아키텍처 모두에 대해 하나의 애플리케이션만 구축했지만 제대로 작동했습니다.https://stackoverflow.com/a/35565901/3241111
기본적으로 위의 모든 것을 시도했지만 "이전에도 이 문제가 발생했기 때문에" 같은 오류가 발생한다면 ndk를 사용하여 추가한 .jar 또는 .aar 또는 모듈이 하나의 라이브러리일 수 있는지, 그리고 8.0(Oreo)+를 지원하지 않는지 확인하십시오. 마찬가지로 Microsoft SignalR 소켓 라이브러리를 추가하고 있습니다.jar 파일과 나중에 앱이 오레오에 설치되어 있지 않다는 것을 알게 되었고, 그 후 현재 Git 페이지에 솔루션이 없기 때문에 라이브러리를 제거하고 다른 라이브러리를 찾습니다.
그래서 당신이 사용하고 있는 도서관을 확인하고 그것이 간절히 필요하다면 그것에 대해 검색해 보세요.
일반적으로 어떤 라이브러리 종속성이 호환되지 않는 ABI를 가지고 있는지 알아보기 위해,
- Android Studio에서 APK 파일 구축(메뉴 빌드 > 번들 구축/APK 구축) // 2020년 4월 1일 실제
- APK 파일 이름 변경, 확장자 "apk"를 확장자 "zip"으로 바꿉니다.
- zip 파일을 새 폴더에 압축 풀기
- libs 폴더로 이동
- 호환되지 않는 ABI가 있는 *.jar 라이브러리 확인
pk 문제를 설치할 때 INSTALL_FAILED_NO_MATCHING_ABIS를 해결하기 위해 버전 업그레이드/제거/교체를 시도할 수 있습니다.
만약을 위해, 이것은 나 같은 사람에게 도움이 될 수도 있습니다.유니티 3D에서도 같은 문제가 있었습니다.안드로이드 스튜디오의 에뮬레이터를 사용하려고 했습니다.그래서 활성화했습니다.Target Architecture->x86 Architecture
(사용되지는 않지만) 플레이어 설정에서 작동했습니다!
저의 경우(Windows 10, Flutter, Android Studio) Android Studio에서 새 에뮬레이터 장치를 만들었습니다.이번에는 x86만 선택하는 대신 x86_64 ABI를 선택했습니다.그것은 제 문제를 해결했습니다.내 에뮬레이터 장치는 아래 스크린샷에 나와 있습니다.
Android 7(Nougat)에서 Android 8(Oreo)로 이동할 때 이 문제에 직면했습니다.
저는 위에 나열된 여러 가지 방법을 시도했지만 불행히도 아무 것도 작동하지 않았습니다.
그래서 .apk 파일을 .zip 파일 압축을 풀어서 이 파일이 /x86_64/darwin/libscrypt.dylib에 있는 lib 폴더를 찾아서 이 파일을 제거하기 위해 안드로이드 섹션 아래에 있는 build.gradle 모듈에 코드를 추가했습니다.
packagingOptions {
exclude 'lib/x86_64/darwin/libscrypt.dylib'
exclude 'lib/x86_64/freebsd/libscrypt.so'
exclude 'lib/x86_64/linux/libscrypt.so'
}
건배사 문제 해결
안녕하세요. 이 라이브러리를 사용하고 있다면;
implementation 'org.apache.directory.studio:org.apache.commons.io:2.4'
다음으로 대체:
implementation 'commons-io:commons-io:2.6'
그리고 문제는 해결될 것입니다.
이런 일이 저에게 일어났습니다.SDK 관리자를 확인해보니 제가 사용하던 SDK 관리자에 업데이트가 있다고 합니다.업데이트를 했더니 문제가 사라졌습니다.
꽤 늦었지만, 방금 이것에 부딪혔습니다.이것은 을 위한 것입니다.Xamarin.Android
릴리스 모드에서 디버그를 시도하지 않는지 확인합니다.릴리스 모드에서 디버깅을 시도하는 경우에도 동일한 오류가 발생합니다.릴리스에서 디버그로 전환하는 것만으로 내 것을 제대로 설치할 수 있었습니다.
나의 경우 다음 옵션을 설정하면 도움말이 표시됩니다.
어떻게든, 이것은 이유 없이 문제를 해결합니다.
./gradlew clean assemble
그런 다음 앱을 설치합니다.
언급URL : https://stackoverflow.com/questions/24572052/install-failed-no-matching-abis-when-install-apk
'programing' 카테고리의 다른 글
Xcode 명령줄 도구가 설치되어 있는지 확인하려면 어떻게 해야 합니까? (0) | 2023.06.03 |
---|---|
Cordova: 특정 iOS 에뮬레이터 이미지 시작 (0) | 2023.06.03 |
깃 포크는 실제로 깃 클론입니까? (0) | 2023.06.03 |
레일 4 인증 토큰 (0) | 2023.06.03 |
문자열에서 캐리지 리턴 제거 (0) | 2023.06.03 |