Gradle同步失败,NDK未配置,请使用SDK管理器下载

Kar*_*a H 14 android android-ndk

我是Android开发的新手,刚刚安装了Android Studio.我正在做一个非常基本的HelloGL2练习,我打开了HelloGL2.iml文件.我试过运行它,但它说gradle项目同步失败并且没有配置NDK.用最简单的术语(对于Android中的完整初学者),我该如何解决这个问题?

pro*_*sor 78

免责声明:我在 Android Studio 上工作

对于较新版本 (3.6+) 的 Android Gradle 插件,请从 SDK 管理器中使用“NDK(并排)”选项下载,然后ndkVersion在build.gradle您的机器上本地提供的完整版 NDK 中指定。

例如,当您从 SDK 管理器中的“NDK (Side by side)”下下载 NDK 20.1.5948944 后,默认情况下,下载的 NDK 将位于~/Android/Sdk/ndk/20.1.5948944. 然后在您的模块级别build.gradle,您需要类似以下内容。

android {
    compileSdkVersion 29


    defaultConfig {
        // ...
    }

    buildTypes {
        // ...
    }

    externalNativeBuild {
        // ...
    }

    ndkVersion "20.1.5948944" // <<==== Here
}
Run Code Online (Sandbox Code Playgroud)


Vio*_*ffe 66

我仔细检查了我是否已经安装了最新的 NDK(所以这不是我的解决方案)。接下来我做了以下操作:Android Studio 菜单 -> 文件 -> 项目结构 -> SDK 位置。这里没有选择NDK,所以选择了最新版本。这解决了问题。

在此处输入图片说明

通过将您的选择写入local.properties项目根目录中的文件,此修复程序仅适用于该特定机器和该项目的本地。

更新:还有一种方法可以通过ANDROID_NDK_HOME环境变量全局设置它。这就是我在构建服务器上调用构建我的项目的方式:

export ANDROID_SDK_ROOT=/home/jenkins/Android/Sdk/; export ANDROID_NDK_HOME=$ANDROID_SDK_ROOT/ndk/21.0.6113669; ./gradlew assembleRelease
Run Code Online (Sandbox Code Playgroud)


Uma*_*air 23

您可以使用SDK Manager安装这些组件:

From an open project, select Tools > Android > SDK Manager from the main menu.
Click the SDK Tools tab.
Check the box next to NDK
Click apply
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅指南

  • 这并不能解决问题。 (5认同)

小智 17

对于Android Studio 4.0以上版本,请将其粘贴到local.properties:

ndk.dir=C\:\\Users\\USER\\AppData\\Local\\Android\\Sdk\\ndk\\21.3.6528147
Run Code Online (Sandbox Code Playgroud)

对于 Mac 用户,请将其粘贴到local.properties:

ndk.dir=/Users/USERNAME/Library/Android/sdk/ndk/23.1.7779620 
Run Code Online (Sandbox Code Playgroud)


小智 6

//试试这个 1 - Android Studio -> Tools -> SDK Manager -> 选择SDK Tools

2 - 选中 LLDB、CMake 和 NDK 旁边的框

3 - 应用并按 OK 按钮.. 在此处输入图片说明


小智 6

工作了!

  1. 转到 SDK manager > android sdk(left side) > SDK Tools
  2. 下载或如果可用然后更新到 NDK(side_by_side) 和 CMake

3. 现在,执行 OK 或 Apply 4. 返回并在失败的构建中单击“安装 NDK '21.0.6113669' 并同步项目”。

快乐编码:)

  • 当我构建时,我仍然收到“NDK 未安装” (6认同)

Hea*_*ers 5

我在尝试运行SQLite Android Bindings时遇到了这个错误。它仍然使用非常旧的 gradle 配置(包括在下面)。

TLDR

请protossor听取意见并使用NDK (Side by side)并ndkVersion在您的build.gradle. 仅在非常旧的项目中使用它。

对于旧项目,您必须从 SDK 管理器安装过时的 NDK。在 Android Studio 中,打开SDK Manager并选择SDK Tools选项卡。取消选中Hide Obsolete Packages,然后滚动到底部以查找NDK (Obsolete)。

更多细节

Android Studio、SDK 管理器、SDK 工具选项卡、未选中隐藏过时的包、选中 NDK(过时)

我./gradlew assembleRelease按照说明运行,得到以下信息:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':sqlite3'.
> NDK not configured.
  Download it with SDK manager.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 7s
Run Code Online (Sandbox Code Playgroud)

尝试配置项目时,我在 Android Studio 中遇到了类似的错误。安装NDK (Obsolete)软件包后,一切都配置正确。

SQLite可悲的是过时的gradle配置:

$ROOT/build.gradle:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.4'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}
Run Code Online (Sandbox Code Playgroud)

$ROOT/sqlitetest/build.gradle:

android {
    compileSdkVersion 25

    defaultConfig {
        minSdkVersion 16
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
...
}
Run Code Online (Sandbox Code Playgroud)