Após a atualização para o plug-in Android Gradle 3.6.0
(lançado em 24 de fevereiro de 2020), vários projetos começaram a falhar independentemente com:
No version of NDK matched the requested version 20.0.5594570. Versions available locally: 21.0.6113669
É bastante simples "consertar" isso localmente instalando a versão mais antiga do ndk esperada:
sdkmanager 'ndk;20.0.5594570'
No entanto, minha pergunta é: onde e como essa versão mais antiga é especificada? E como atualizá-lo para que ele corresponda à versão mais recente 21.0.6113669
?
android
android-ndk
android-gradle-plugin
android-sdk-tools
android-sdk-manager
friederbluemle
fonte
fonte
Respostas:
Opção 1:
Você pode simplesmente selecionar seu NDK instalado localmente na caixa de diálogo "Estrutura do projeto".
Você pode abrir a caixa de diálogo "Estrutura do projeto" clicando
File > Project Structure...
ou pressionando as teclas de atalhoCTRL + ALT + SHIFT + S
(no Windows)Quando o diálogo de estrutura do projeto estiver aberto, vá para o local do SDK e selecione a versão do NDK instalada localmente em Android NDK Location . Normalmente, isso é instalado em algum lugar da pasta do usuário e,
\AppData\Local\Android\Sdk\ndk\%ndk version%
pelo menos, no Windows.Captura de tela da caixa de diálogo Estrutura do projeto - do Android Studio 3.6 Build # AI-192.7142.36.36.6200805, construído em 12 de fevereiro de 2020
Opção 2:
Fazer a opção 1 editará seu
local.properties
arquivo e funcionará na maioria dos casos. Mas se você quiser usar uma versão NDK consistente em todas as máquinas com as quais constrói o projeto, de acordo com este guia oficial , poderá configurá-lo a partir do script gradle do módulo. Basta adicionar o blocondkVersion
de script do módulo gradle dessaandroid{}
forma.substituindo a sequência entre aspas duplas pela versão NDK que você deseja usar
Opção 3:
Se você deseja que todos os projetos criados em uma máquina específica usem a mesma versão do NDK, também é possível definir
ANDROID_NDK_HOME
a variável de ambiente com o caminho para a pasta NDK.fonte
$NDK_LATEST_VERSION
Eu também encontro isso
Opção 1:
Você pode simplesmente selecionar o NDK instalado localmente na caixa de diálogo Estrutura do projeto !
Mas é válido apenas para compilações locais, e preciso de uma solução para o CI
Opção 2:
Funciona apenas quando você o especifica em todos os módulos usados
Aqui parece não funcionar https://github.com/hannesa2/panoramagl/pull/17/checks com esta alteração https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7
Opção 3:
funciona também!
fonte
21.0.6113669
mas os logs de compilação informam que a versão solicitada é20.0.5594570
. Você pode procurar umndk_locator_record.json
arquivo? Esse arquivo tem informações sobre como ele resolveu a versão ndk solicitada.Eu tenho o mesmo problema. Eu o resolvi por meio do gerenciador do SDK, em Ferramentas do SDK, clique
Show Package Details
e role por NDK (Lado a lado), marque e aplique a versão que você precisa. Veja a imagem abaixo:Minha pergunta para qualquer pessoa é: por que precisamos disso agora para projetos que não exigem o NDK? Acontece que o NDK é um requisito preexistente no projeto em que trabalho para uma dependência!
fonte
Altere sua versão do caminho de classe para 3.5.0 dentro do seu build.gradle, nível do projeto.
Eu tenho o mesmo problema e ele resolveu.
fonte
3.6.0
(ou posterior). Aliás, você não precisa fazer o downgrade para3.5.0
. Versão3.5.3
funciona bem também.Eu tive o mesmo problema, depois de um tempo, encontrei uma solução temporária. renomeie a
ndk
pasta parandk-bundle
. em seus projetos, vá aolocal.properties
arquivo e adicione esta linha antessdk.dir
:é meu:
espero que ajude você
fonte
ndk.dir=G\:\\...\\Sdk\\ndk\\21.0.6113669
funcionou para mim.Após a atualização para o gradle: 3.6.0 (ou posterior). Tente renomear ou excluir as pastas ndk e ndk-bundle localizadas em C: \ Usuários \ <usuário> \ AppData \ Local \ Android \ Sdk
O crédito vai para: https://github.com/gradle/gradle/issues/12440#issuecomment-601214647
fonte