Android: ни одна версия NDK не соответствует запрошенной версии - PullRequest
57 голосов
/ 26 февраля 2020

После обновления до Android Плагин Gradle 3.6.0 (выпущен 24 февраля 2020 г.) несколько независимых проектов начали сбой с:

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?

Ответы [ 6 ]

31 голосов
/ 26 февраля 2020

Опция 1:

Вы можете просто выбрать локально установленный NDK в Диалог структуры проекта

Вы можете открыть Диалог структуры проекта, нажав File > Project Structure... или нажав горячие клавиши CTRL + ALT + SHIFT + S (на windows)

Когда откроется диалоговое окно «Структура проекта», go - Расположение SDK и выберите локально установленную версию NDK в Android NDK Местоположение . Обычно это устанавливается где-то в вашей пользовательской папке, тогда \AppData\Local\Android\Sdk\ndk\%ndk version%, по крайней мере, для Windows.

Скриншот диалогового окна "Структура проекта" - из Android Studio 3.6 Build # AI-192.7142.36.36 .6200805, построено 12 февраля 2020 г.

Опция 2:

При выполнении опции 1 ваш файл local.properties будет редактироваться для вас и будет работать в большинстве случаев. Но если вы хотите использовать согласованную версию NDK на всех машинах, на которых вы строите проект, в соответствии с этим официальным руководством , вы можете настроить его с помощью скрипта gradle вашего модуля. Просто добавьте ndkVersion в блок android{} вашего скрипта модуля, например,

android {
    ndkVersion "major.minor.build"
}

, заменив строку между двойными кавычками на версию NDK, которую вы хотите использовать

Вариант 3:

Если вы хотите, чтобы все проекты, созданные на определенной машине, использовали одну и ту же версию NDK, вы также можете установить переменную среды ANDROID_NDK_HOME с путем к папке NDK.

21 голосов
/ 01 марта 2020

Я тоже сталкиваюсь с этим

Ни одна версия NDK не соответствует запрошенной версии 20.0.5594570. Локальные версии: 21.0.6113669

Вариант 1:

Вы можете просто выбрать локально установленный NDK в диалоге Структура проекта работает! enter image description here

Но действительно только для локальных сборок, мне нужно решение для 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

тоже работает!

15 голосов
/ 26 февраля 2020

У меня та же проблема. Я решил это с помощью менеджера SDK в разделе SDK Tools, нажмите Show Package Details, а затем прокрутите страницу под NDK («Бок о бок») и отметьте и установите нужную версию. См. Изображение ниже:

Image link to SDK tools for NDK version install

Мой вопрос ко всем: зачем нам это нужно сейчас для проектов, которые не требуют NDK? Как оказалось, NDK - это уже существующее требование в проекте, над которым я работаю, для зависимости!

2 голосов
/ 20 марта 2020

У меня была такая же проблема, через некоторое время я нашел временное решение. переименуйте папку ndk в ndk-bundle. в ваших проектах go в local.properties файл и добавьте эту строку перед sdk.dir:

ndk.dir=<path to your ndk folder>

его шахта:

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

я надеюсь, что это поможет вам

2 голосов
/ 09 марта 2020

Измените версию вашего classpath на 3.5.0 внутри вашего build.gradle, уровень проекта.

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

У меня та же проблема, и она решена.

1 голос
/ 26 апреля 2020

После обновления до Gradle: 3.6.0 (или позже). Попробуйте переименовать или удалить папки ndk и ndk-bundle, расположенные в C: \ Users \ \ AppData \ Local \ Android \ Sdk

Кредит идет на: https://github.com/gradle/gradle/issues/12440#issuecomment -601214647

...