【问题标题】:Gradle sync failed, NDK not configured, download it with SDK managerGradle 同步失败,NDK 未配置,使用 SDK 管理器下载
【发布时间】:2017-04-18 01:06:44
【问题描述】:

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

【问题讨论】:

  • 我假设您已经找到了这个代码实验室:codelabs.developers.google.com/codelabs/android-studio-jni/#0,它逐步回答了如何让“Hello World”与 Android Studio 和 NDK 一起工作。
  • 无法发布答案,但对于运行非常规设置并可能需要手动提供路径的任何人:ANDROID_NDK_HOME = "YOUR_PATH_TO_LOCATE_NDK_BUNDLE",其中路径应该类似于 /path/to/Sdk /ndk 捆绑

标签: android android-ndk


【解决方案1】:

您可以使用 SDK 管理器安装这些组件:

  1. 在打开的项目中,从主菜单中选择Tools > Android > SDK Manager
  2. 点击SDK Tools 标签。
  3. 选中NDKCMakeLLDB 旁边的框
  4. 点击apply

(使用 Android Studio 3.6.1)

编辑:在更高版本的 Android Studio 上执行上述过程仍然会在构建过程中出现NDK not installed 错误。 This answer given by Violet Giraffe 解决了这个问题。安装必要的文件后,转到File > Project Structure > SDK 并选择 NDK 版本。

更多详情请见this guide

【讨论】:

  • 这并不能解决问题。
  • @Pacu 我在 2016 年写的。说明是否正确?我的机器上目前没有安装 android studio。
  • 到达菜单的说明没问题,但检查 NDK 并不能解决问题
  • @Pacu 试试下面的答案
  • 它不能解决问题。 @protossor 的回答是正确的。
【解决方案2】:

如果您看到此错误,您的 SDK 中可能没有任何 NDK。

所以你最好从here下载它并复制你SDK中的所有文件夹和文件。

你也可以去; 打开项目>选择工具[在上页]>Android>SDK 管理器[从主菜单]>单击 SDK 工具选项卡>并选中 NDK 旁边的框

如果SDK Tools选项卡中没有NDK,可以在此文件夹中自动下载

【讨论】:

    【解决方案3】:

    我的版本有点不同:

    从打开的项目中,选择 Tools > Android > SDK Manager 主菜单。在 Appearance & behavior > System Settings > Android SDK 我必须单击 SDK Tools 选项卡。选中 NDK 单击旁边的框 申请

    【讨论】:

      【解决方案4】:

      //试试这个 1 - Android Studio -> 工具 -> SDK 管理器 -> 选择 SDK 工具

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

      3 - 应用并按 OK 按钮..

      【讨论】:

        【解决方案5】:

        使用 android studio 3.0 + 这个问题的处理方式不同。

        转到文件 > 设置 > Android SDK > 并选择 SDK 条目并更新。它应该可以解决问题。

        解决同一问题的另一种方法是,当您进行 gradle 项目同步时,它会自动识别需要版本升级的问题,并在控制台中为您提供可点击的链接。通过这些步骤,它可能还会提示您更新其他依赖项,例如 CMake。

        【讨论】:

          【解决方案6】:

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

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

          例如,在您从 SDK 管理器的“NDK(并排)”下下载 NDK 20.1.5948944 后,下载的 NDK 默认位于~/Android/Sdk/ndk/20.1.5948944 下。然后在你的模块级别build.gradle,你需要类似下面的东西。

          android {
              compileSdkVersion 29
          
          
              defaultConfig {
                  // ...
              }
          
              buildTypes {
                  // ...
              }
          
              externalNativeBuild {
                  // ...
              }
          
              ndkVersion "20.1.5948944" // <<==== Here
          }
          

          【讨论】:

          • 谢谢!我仍然收到错误,因为 SDK 管理器下载的版本与我尝试打开的项目中指定的版本不同。更改 build.gradle 中的 ndkVersion 以匹配磁盘上的那个为我修复了错误。
          • 也帮我修好了,谢谢!遗憾的是,Android Studio 不能自动处理这个问题,而它可以处理很多(!)其他事情。
          • 为什么在不需要或不使用 NDK 的项目中要求我使用 NDK?这会迫使所有从事项目工作的人下载和同步 AS 请求的 NDK 版本吗?
          • 嗨@Chapz 我无法在装有 AS 和 AGP 3.6.1 的新机器(未安装 NDK)上重现该问题。你能file a bug提供更详细的信息吗?
          • 这应该是选择的答案。
          【解决方案7】:

          我再次确认我已经安装了最新的 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
          

          【讨论】:

          • 这应该是正确的答案,因为发生此错误时 SDK 管理器不可用。我必须选择默认的 NDK 路径,它对我来说很好。这是 Android Studio 版本 3.6.2。
          【解决方案8】:

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

          TLDR

          请使用protossor's advice 并使用NDK (Side by side) 并在您的build.gradle 中设置ndkVersion。仅在非常古老的项目上使用它。

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

          更多详情

          我按照说明运行./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
          

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

          SQLitegradle 配置严重过时

          $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
              }
          }
          

          $ROOT/sqlitetest/build.gradle:

          android {
              compileSdkVersion 25
          
              defaultConfig {
                  minSdkVersion 16
                  versionCode 1
                  versionName "1.0"
                  testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
              }
          ...
          }
          

          【讨论】:

            【解决方案9】:

            对于上述Android Studio 4.0,将其粘贴到local.properties

            ndk.dir=C\:\\Users\\USER\\AppData\\Local\\Android\\Sdk\\ndk\\21.3.6528147
            

            【讨论】:

              【解决方案10】:

              对于 Linux
              创建文件local.properties:

              ndk.dir=/home/username/Android/Sdk/ndk/21.3.6528147
              

              现在关闭项目并再次导入。

              【讨论】:

              • 警告:NDK was located by using ndk.dir property. This method is deprecated and will be removed in a future release. Please delete ndk.dir from local.properties and set android.ndkVersion to [20.0.5594570] in all native modules in the project.
              【解决方案11】:

              工作!!

              1. 转到 SDK 管理器 > android sdk(左侧)> SDK 工具
              2. 下载或如果可用则更新到 NDK(side_by_side) 和 CMake

              3。现在,确定或申请 4.返回并在失败的构建中单击“安装NDK'21.0.6113669'并同步项目”。

              编码愉快:)

              【讨论】:

              • 当我构建时,我仍然得到“未安装 NDK”
              【解决方案12】:

              NDK(side by side) 21.x.xxxxx 是解决的关键。

              转到上面/其他答案中提到的SDK工具,然后您可能需要尝试使用ndk版本。

              单击显示包详细信息以了解可用的版本。

              另外,您可能需要在local.properties 中添加类似的内容。喜欢 ndk.dir=/home/username/Android/Sdk/ndk/21.x.xxxxx

              PS:您可能还需要升级 gradle 插件,具体取决于您使用的版本

              我的环境:MAC M1

              【讨论】:

              • 这个答案对我有用。我无法从项目结构菜单中选择 NDK 版本,并且它看起来 NDK 已安装在 SDK 管理器中。直到我使用“显示包详细信息”复选框,我才意识到安装的 NDK 版本与我的 build.gradle 文件中的版本不同。 :-/ 谢谢!
              猜你喜欢
              • 2021-01-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-07-29
              相关资源
              最近更新 更多