Я пытаюсь создать проект Android с помощью Gradle. В проекте используется собственный код, поэтому ему нужен NDK, который я установил.
Однако Gradle выдает следующую ошибку:
> NDK not configured.
Download it with SDK manager.
В Android SDK Manager не указан NDK в качестве опции. Кроме того, на моем компьютере установлен NDK, поэтому ошибка, похоже, заключается в том, что Gradle его не находит.
Большинство ответов предполагают, что у пользователей есть Android Studio, которой у меня нет и не хочу. Есть ли способ исправить это без?
Убедитесь, что у вас установлена переменная среды ANDROID_NDK_HOME, указывающая на каталог установки NDK. В моем случае это помогло:
export ANDROID_NDK_HOME=/home/myself/bin/android-ndk-r10e
Вы можете добавить это в свой .bashrc или аналогичный, чтобы переменная была вставлена при входе в систему, или запускайте указанную выше команду каждый раз, когда вы запускаете оболочку и хотите создать проект NDK.
В качестве альтернативы, если вы установили ndk-bundle через sdkmanager, он будет найден без дополнительной переменной среды.
Most answers assume users to have Android Studio, which I do not have and do not want. Any way to fix this without?
Да, вам не нужно устанавливать Android Studio.
Что касается вашего существующего проекта Android, я ожидаю, что у вас уже есть local.properties в корневом каталоге вашего проекта. Откройте и измените там, чтобы установить каталог NDK. Например, ваша версия NDK - android-ndk-r17b (https://developer.android.com/ndk/downloads/), и вы установили (или разархивировали) ее в каталоге /Users/myname/foo/xxx/Android/android-ndk-r17b, а затем измените этот файл, как показано ниже:
ndk.dir=/Users/myname/foo/xxx/Android/android-ndk-r17b
sdk.dir=/Users/myname/foo/xxx/Android/sdk
Этот ответ также полезен, если у вас есть Android Studio и вы получили код от другого разработчика, который включил их local.properties. Вы можете отредактировать их local.properties и удалить строку с ndk.dir, которая указывает на папку их локального компьютера, если ваша Android Studio уже настроена с правильной папкой на вашем компьютере. Затем синхронизация gradle, и ошибка исчезнет.
К вашему сведению, теперь это немного устарело из-за устаревания конфигурации ndk.dir в local.properties. Он по-прежнему работает (пока), но здесь описан рекомендуемый подход для правильной настройки: developer.android.com/studio/…
Это сработало для меня. Я использовал командную строку Linux для установки конкретной сборки
yes | ./sdkmanager --install "ndk;21.0.6113669"и использовал NDK_ROOT и NDK_HOME для указания на установку, но мне нужна была переменная envANDROID_NDK_HOME. Эта переменная казалась установленной, если вы используете--install ndk-build, но при этом всегда устанавливается последняя версия. Получил те версии с./sdkmanager --list