[android] ‘기기는 x86을 지원하지만 APK는 armeabi-v7a 만 지원’오류의 이유는 무엇입니까?

GitHub에서 일부 프로젝트를 테스트하여 Android Studio를 사용하고 있으며 apk를 에뮬레이션하려고 할 때 에뮬레이터를 선택할 수 없습니다.

그것은 나에게 말한다 :

기기는 x86을 지원하지만 APK는 armeabi-v7a 만 지원합니다.

왜 이렇게합니까?



답변

같은 문제가 있었는데 module : app 에서 build.gradle 을 확인했습니다 . 다음과 같은 구성이 있음이 밝혀졌습니다.

    ndk {
        abiFilters "armeabi-v7a", "x86"
    }

내가 모두 댓글을 달았을 때 모든 것이 잘 작동했습니다.

React Native Android 프로젝트를 다루려고했습니다 .


답변

USB 디버깅을 끄고 하드웨어 장치에서 다시 켭니다.


답변

Android Studio에서 Build 메뉴를 선택하고

여기에 이미지 설명 입력

그런 다음 Select Build Variant … 를 클릭 하고 ‘Build Variants’창에서 x86Debug (또는 릴리스)를 선택하십시오.

여기에 이미지 설명 입력

추신 : Mac에서 Android Studio 2.3을 사용하고 있습니다.


답변

Linux : 파일> 캐시 무효화 / 다시 시작 전화 : 대신이 장치 충전을 사진 전송 (PTP)으로 변경합니다.


답변

비슷한 문제가 있었는데 아래와 같이 “abiFilters”목록에 “x86″값을 추가하여 해결했습니다.

[build.gradle (Module : app) 파일 열기] deafultSection 에서
ndk “를 검색 하고 “x86″을 추가하세요!

ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86"
        }

도움이 되었기를 바랍니다 !!!


답변

내 경우에는 Linux 시스템 adb devices

List of devices attached
44b194f5    no permissions

그런 다음 adb 서버를 다시 시작했습니다.

sudo adb kill-server

그리고

sudo adb start-server

그런 다음 장치를 연결하고 디버깅을 켜고

adb devices
List of devices attached
44b194f5    device

마침내 장치에서 실행할 수있었습니다


답변

제 경우에는 앱이 일부 네이티브 라이브러리를 사용합니다. 각 플랫폼에는 해당 라이브러리를 빌드해야합니다.

따라서 x86 (또는 기타) 플랫폼의 기본 lib가 생성되지 않습니다. 어딘가에 abifilter를 추가해야합니다.

abi 필터를 지정할 수있는 여러 위치가 있습니다.

  • Application.mk는 다음과 같이 필요한 플랫폼을 추가합니다.

    APP_ABI := armeabi armeabi-v7a x86
    
  • build.gradle

    abiFilters를 찾고 다음과 같이 필요한 플랫폼을 추가하십시오.

    abiFilters   "armeabi","armeabi-v7a","x86"