После обновления до плагина 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
?
Ответы:
Опция 1:
Вы можете просто выбрать локально установленный NDK в диалоге структуры проекта
Вы можете открыть диалоговое окно " Структура проекта", нажав
File > Project Structure...
или нажав горячие клавишиCTRL + ALT + SHIFT + S
(в окнах)После открытия диалогового окна «Структура проекта» перейдите в « Местоположение 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
в свой модуль блок скриптов Gradle,android{}
как показано ниже .замена строки между двойными кавычками на версию NDK, которую вы хотите использовать
Вариант 3:
Если вы хотите, чтобы все проекты, созданные на определенной машине, использовали одну и ту же версию NDK, вы также можете установить
ANDROID_NDK_HOME
переменную среды с путем к папке NDK.источник
$NDK_LATEST_VERSION
android.ndkVersion
отличается от последней версии NDK. Наличие фактического «последнего» значения имеет несколько вопросов с неочевидными ответами. Должен ли последний указывать на последний стабильный выпуск или только на самую новую доступную вещь? Последняя вещь на диске, или последняя доступная из SDK? Как часто следует проверять сборку? Как сделать так, чтобы старые версии вашего проекта оставались работоспособными?Я сталкиваюсь с этим тоже
Опция 1:
Вы можете просто выбрать локально установленный NDK в структуре проекта Диалог работает!
Но действует только для локальных сборок, мне нужно решение для CI
Вариант 2:
Это работает только когда вы указываете его в каждом используемом модуле
Вот, кажется , не работать https://github.com/hannesa2/panoramagl/pull/17/checks с этим изменением https://github.com/hannesa2/panoramagl/pull/17/files#diff-cff4e8c294a5dc5e76308662ae1ddcacR6-R7
Вариант 3:
тоже работает!
источник
21.0.6113669
но в журналах сборки указано, что запрашиваемая версия есть20.0.5594570
. Можешь поискатьndk_locator_record.json
файл? Этот файл содержит информацию о том, как он решил запрашиваемую версию ndk.У меня такая же проблема. Я решил это с помощью менеджера SDK в разделе SDK Tools, щелкните,
Show Package Details
затем прокрутите под NDK («Рядом») и отметьте и установите нужную версию. Смотрите изображение ниже:Мой вопрос ко всем: зачем нам это нужно сейчас для проектов, которые не требуют NDK? Как оказалось, NDK - это уже существующее требование в проекте, над которым я работаю, для зависимости!
источник
Измените версию вашего classpath на 3.5.0 внутри вашего build.gradle, уровня проекта.
У меня та же проблема, и она решена.
источник
3.6.0
(или позже). Кстати, вам не нужно понижать до3.5.0
. Версия3.5.3
отлично работает.У меня была такая же проблема, через некоторое время я нашел временное решение. переименовать
ndk
папку вndk-bundle
. в ваших проектах зайдите вlocal.properties
файл и добавьте эту строку раньшеsdk.dir
:это мое:
я надеюсь, что это поможет вам
источник
ndk.dir=G\:\\...\\Sdk\\ndk\\21.0.6113669
сработала для меня.После обновления до Gradle: 3.6.0 (или позже). Попробуйте переименовать или удалить папки ndk и ndk-bundle, расположенные в C: \ Users \ <пользователь> \ AppData \ Local \ Android \ Sdk
Кредит поступает по адресу : https://github.com/gradle/gradle/issues/12440#issuecomment-601214647
источник