[android] Android : 요청 된 버전과 일치하는 NDK 버전이 없습니다.

2020 년 2 월 24 일에 출시 된 Android Gradle 플러그인으로 업데이트 한 후 3.6.0여러 프로젝트가 독립적으로 실패하기 시작했습니다.

No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669

이전의 예상되는 ndk 버전을 설치하여 로컬로 “고정”하는 것은 매우 간단합니다.

sdkmanager 'ndk;20.0.5594570'

그러나 내 질문은이 구 버전은 어디에서 어떻게 지정됩니까? 최신 버전과 일치하도록 어떻게 업데이트 21.0.6113669합니까?



답변

옵션 1:

프로젝트 구조 대화 상자 에서 로컬로 설치된 NDK를 간단히 선택할 수 있습니다

File > Project Structure...에서 핫키 를 클릭 하거나 눌러 프로젝트 구조 대화 상자를 열 수 있습니다.CTRL + ALT + SHIFT + S

프로젝트 구조 대화 상자가 열리면 SDK 위치 로 이동하여 Android NDK 위치 에서 로컬로 설치된 NDK 버전을 선택하십시오 . 일반적으로 이것은 사용자 폴더 어딘가에 설치 \AppData\Local\Android\Sdk\ndk\%ndk version%되고 최소한 Windows의 경우 설치됩니다.

2020 년 2 월 12 일에 빌드 된 Android Studio 3.6 빌드 # AI-192.7142.36.36.6200805의 프로젝트 구조 대화 상자 스크린 샷

옵션 2 :

옵션 1을 수행하면 local.properties파일 이 편집 되며 대부분의 경우 작동합니다. 그러나이 공식 가이드 에 따라 프로젝트를 빌드하는 모든 머신에서 일관된 NDK 버전을 사용하려면 모듈 gradle 스크립트에서 구성 할 수 있습니다. 간단히 ndkVersion모듈 gradle 스크립트 android{}블록 에를 추가하십시오 .

android {
    ndkVersion "major.minor.build"
}

큰 따옴표 사이의 문자열을 사용하려는 NDK 버전으로 바꿉니다.

옵션 3 :

특정 머신에서 빌드 된 모든 프로젝트가 동일한 NDK 버전을 사용 ANDROID_NDK_HOME하도록하려면 NDK 폴더 경로로 환경 변수를 설정할 수도 있습니다 .


답변

나도 이것에 부딪친 다

요청한 버전 20.0.5594570과 일치하는 NDK 버전이 없습니다. 로컬에서 사용 가능한 버전 : 21.0.6113669

옵션 1:

프로젝트 구조 대화 상자 에서 로컬로 설치된 NDK를 간단히 선택할 수 있습니다 !
여기에 이미지 설명을 입력하십시오

그러나 로컬 빌드에만 유효합니다 .CI에 대한 솔루션이 필요합니다.

옵션 2 :

사용 된 모든 모듈에서 지정할 때만 작동합니다.

android {
    compileSdkVersion 28
    ndkVersion "21.0.6113669"
    ...
}

여기가 작동하지 않을 것 https://github.com/hannesa2/panoramagl/pull/17/checks 이 변화 https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7

옵션 3 :

export ANDROID_NDK_HOME=/Users/{my-user}/Development/adt/sdk/ndk/21.0.6113669

너무 작동합니다!


답변

나는 같은 문제가 있습니다. SDK 도구에서 SDK 관리자를 통해 문제를 해결 Show Package Details한 다음 NDK (나란히) 아래를 스크롤하고 필요한 버전을 선택하고 적용합니다. 아래 이미지를보십시오 :

NDK 버전 설치용 SDK 도구에 대한 이미지 링크

누구에게나 내 질문은 NDK가 필요없는 프로젝트에 왜 이것이 필요합니까? NDK는 의존성을 위해 노력하는 프로젝트의 기존 요구 사항입니다.


답변

build.gradle, 프로젝트 레벨에서 클래스 경로 버전을 3.5.0으로 변경하십시오.

dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
}

나는 같은 문제가 있고 해결되었습니다.


답변

잠시 후 동일한 문제가 발생하여 임시 솔루션을 찾았습니다. ndk폴더 이름을로 바꿉니다 ndk-bundle. 프로젝트에서 local.properties파일 로 이동하여 다음 줄을 추가하십시오 sdk.dir.

ndk.dir=<path to your ndk folder>

내 것이다:

ndk.dir=G\:\\SDK\\ndk-bundle
sdk.dir=G\:\\SDK

나는 그것이 당신을 돕기를 바랍니다


답변

gradle : 3.6.0 이상으로 업그레이드 한 후 C : \ Users \ <user> \ AppData \ Local \ Android \ Sdk에있는 ndk 및 ndk- 번들 폴더의 이름을 바꾸거나 삭제하십시오.

크레딧은 https://github.com/gradle/gradle/issues/12440#issuecomment-601214647 로 이동합니다.


답변