【问题标题】:How to fix android studios 2.3 NDK bug?如何修复 android studio 2.3 NDK 错误?
【发布时间】:2017-07-29 16:07:09
【问题描述】:

我假设这是一个错误,因为在新更新之前我没有任何问题。所以我不能使用 gradle 控制台来调试我的应用程序,因为我有这个警告 -

“按需配置是一项孵化功能。 NDK 缺少“平台”目录。 如果您使用的是 NDK,请验证 ndk.dir 是否设置为有效的 NDK 目录。当前设置为 C:\Users\Emily Thacker\AppData\Local\Android\Sdk\ndk-bundle。 如果您不使用 NDK,请从 ANDROID_NDK_HOME 或 local.properties 中取消设置 NDK 变量以删除此警告。”

我很确定我没有使用 NDK,我不知道如何解决这个问题,这是我的 local.properties

## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=C\:\\Users\\Emily Thacker\\AppData\\Local\\Android\\Sdk

另外,我在我的目录中没有看到 ANDROID_NDK_HOME 文件。

【问题讨论】:

标签: android android-ndk


【解决方案1】:

我能够阻止这个烦人的消息;这对我有用。

背景:

  1. 我根本没有使用 NDK,也从未安装过 NDK。

  2. 但是,正如 xsveda 在此处的另一个答案中所述,这是此处记录的 Gradle 错误:

    https://code.google.com/p/android/issues/detail?id=228424

    因此,即使是“NDK 无辜者”也可能成为其受害者。

  3. 问题在于,即使您从未安装过 NDK,Gradle 也会通过将字符串“/ndk-bundle”附加到 SDK 文件夹位置来计算 NDK 文件夹的位置。

  4. 在建立对存在于特定位置的 NDK 文件夹的错误预期后,每次构建时,Gradle 都会向您发出警告,提示您“缺少”该文件夹。这只是一个警告,不会阻止您的构建完成,但这很烦人。

我如何阻止烦人的消息:

由于磁盘空间便宜,而我的时间对我来说很宝贵,我通过安装 NDK 来解决这个错误,即使我不打算使用它。

为此,您可以访问:

文件 -> 项目结构 -> SDK 位置

并查看 Android NDK 位置字段。如果您尚未安装 NDK,此字段将为空。

在这种情况下,该字段下方将是安装 NDK 的链接。单击该链接并安装它。这需要几分钟。

安装完成并关闭安装进度对话框后,NDK 的位置将自动写入 Android NDK 位置字段。这将是这样的:

C:\dev\astudiosdk\ndk-bundle

单击“确定”按钮并再次构建。错误消失。

请注意,您可能可以在此字段中输入预期的文件夹;我没有尝试过。但我不知道这是否会导致其他一些问题,特别是如果您最终决定实际使用 NDK。

【讨论】:

    【解决方案2】:

    只需安装Android NDK

    这解决了我的错误和警告!

    1. 转Tools -> Android -> SDK Manager
    2. 点击SDK Tools
    3. 检查NDK
    4. 申请退出。

    【讨论】:

    • 好吧,下面是安装NDK的步骤,1.转到tools.2.Android 3.SDK Manager.3。 SRK 工具 4. 检查 NDK 单击应用,然后确定! 5.重建
    • 你不应该安装你不使用的东西。
    【解决方案3】:

    通过从 SDK 根文件夹中删除一个空的 ndk-bundle 文件夹来解决此问题(不知道它出现的原因和时间):

    以下是 the issue on Android bug tracker 提供帮助的解释:

    对于在插件 3.0.0-alpha1 或 之后。请提交一个新错误并尝试回答 #33 中的所有问题。 我们需要更多信息来调试问题并将 cmets 添加到 关闭的 bug 很容易让它迷路。

    为了提供一些背景知识,插件会检查 NDK 是否 目录有效。很可能,您没有使用 NDK。我们 自动假定它在 {sdk}/ndk-bundle 中。如果它会被忽略 {sdk}/ndk-bundle 不存在。如果您看到 'NDK 缺少一个 “平台”目录。',这意味着有一个 {sdk}/ndk-bundle,但是 不是 {sdk}/ndk-bundle/platforms 目录。这意味着你有一个 由于某种原因损坏了 NDK。删除是安全的 {sdk}/ndk-bundle 如果你不使用它。

    【讨论】:

    • 对不起,我从来没有,也没有 ndk-bundle,也没有 ANDROID_NDK_HOME。该解决方案不起作用。
    • @Davidea 检查其他回复。对我来说,这是一个问题。我也从来没有创建过这个文件夹。
    • 对我来说这行得通;这可能是因为我开始下载 NDK(在项目结构 -> SDK 位置 -> 下载 Android NDK)然后取消了进度。第一步可能是创建此目录,而取消不会删除它。
    • 也为我工作。这是最简单的解决方案,如果您的 SDK 目录中有空的“ndk-bundle”文件夹,则使用它最有意义。
    【解决方案4】:

    听起来也许从 Android Studio IDE 更新 SDK 会有所帮助

    步骤是:

    1. 转到Tools (top-menu item) > Android > SDK Manager
    2. 单击 SDK 工具选项卡
    3. 向下滚动到 NDK 复选框更新选项

    此处截图:How to update Android NDK in place?

    【讨论】:

    • 这并不能解决问题,只是下载了 NDK,您可能没有任何充分的理由下载它。
    【解决方案5】:

    我遇到了这个问题:

    NDK is missing a "platforms" directory.
    If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/<user_name>/Library/Android/sdk/ndk-bundle.
    

    我通过在ndk-bundle 文件夹中创建一个空的platforms 文件夹解决了这个问题。喜欢:path/to/your/Android/sdk/ndk-bundle/platforms

    如果您没有 ndk-bundle 文件夹。按照以下步骤安装 NDK (Install NDK screenshot):

    • 打开Preferences
    • 从左侧菜单转到Android SDK
    • 选择SDK Tools
    • 检查 NDK。
    • 申请并确定。

    Gradle 版本:6.3

    Android 工作室版本: 安卓工作室 4.1.1 构建 #AI-201.8743.12.41.6953283,构建于 2020 年 11 月 5 日

    PS:我从https://docs.gradle.org/current/userguide/installation.html手动安装了gradle

    【讨论】:

      【解决方案6】:

      你可以试试看:

      在 android studio 中已经有一个复选框了。

      Android Studio -> 首选项 -> 编译器 -> Gradle -> 命令行选项 -> 按需配置

      取消选中它,然后再次同步 gradle

      【讨论】:

      • 这可能是由于快速构建过程而发生的
      • @RyderThacker 取消选中它,然后再次同步 gradle
      【解决方案7】:

      Android SDK 不应使用带有空格的目录路径。作为一种简单的治疗方法,您可以手动更改

      sdk.dir=C:/Users/EMILYT~1/AppData/Local/Android/Sdk
      

      您不需要安装 NDK。

      【讨论】:

      • 我应该在哪里写这个东西?在 gradle.properties 中?
      • @earthdan local.proerties
      【解决方案8】:

      这类错误语句有:-

      1. NDK 缺少“平台”目录。
      2. 如何设置 ANDROID_NDK_HOME 让 Android Studio 不询问 ndk 位置?

      解决方案

      打开你的build.gradle,在这里你会看到两个 gradle 路径,比如: classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.android.tools.build:gradle:2.2.0'

      您可以删除其中一个类路径并只保留一个类路径。

      清理项目gradlew clean

      这对我有用,不需要设置 ndk 路径或 ndk 设置。

      Android Studio NDK 2.3 错误

      【讨论】:

      • 这似乎是一个问题,您尝试使用两个版本的 gradle,而您选择保留 2.2.0,它“修复”了该错误。您的建议是降级到 2.2.0,这不是使用 2.3 和解决此错误的解决方案。
      • 使用任何已安装的 gradle 版本,例如 classpath 'com.android.tools.build:gradle:2.2.0'
      • 对于那些需要插件 2.3 并且由于构建错误而无法返回 2.2 的人来说,这不是一个很好的解决方案...
      【解决方案9】:

      在 Android Studio SDK 工具中更新 NDK 解决了我的问题。

      【讨论】:

        【解决方案10】:

        对我来说,NDK 错误被证明是错误的诊断。当 gradle 在 java.io.UncheckedIOException 类上抛出 ClassNotFound 异常时发生此错误。

        虽然该类是在 Java 8 中定义的,但它并未包含在我安装的 JDK 1.8.0u51(或者可能是更早的版本)中。

        更新 JDK 并删除 1.8.0u51 版本解决了该问题。

        【讨论】:

          【解决方案11】:

          如果您在发布 APK 时无法构建项目

          您看到的警告只是一个警告。 有趣的是,您很可能留下了一些没有必需名称的语言 strings.xml。 或者一些本地化的字符串-.xml 包含不需要的字符,例如“'”,应该用例如“\'”替换。 总体而言,它可能与您的应用资源有关。首先仔细检查它们。

          【讨论】:

            【解决方案12】:

            转到 Gradle Scripts 然后到 local.properties 并正确设置 SDK 和 NDK 位置,在我的情况下设置是:

            ndk.dir=F:\AndroidSDK\ndk-bundle sdk.dir=F:\AndroidSDK

            【讨论】:

              【解决方案13】:

              我不知道这是否会对任何人有所帮助,但我遇到了同样的错误并且没有任何效果。然后我去 ndk 文件夹创建了一个空的平台目录,它工作了。

              【讨论】:

                【解决方案14】:

                就我而言,我发现我的项目没有使用 NDK-bundle SDK。所以,我主要删除了 ndk-bundle 中的

                path/to/your/Android/sdk/
                

                我知道了。

                【讨论】:

                  【解决方案15】:

                  就我而言,我不得不将我的 NDK 从 22.1.7171670 降级到 21.4.7075529。我从 this link 了解到这个分辨率

                  【讨论】:

                    【解决方案16】:

                    如果您确实需要在项目中使用 NDK,则需要创建 platforms 文件夹并将 NDK 放在那里。

                    1. 继续在您的 SDK 目录下创建 platforms 文件夹。 就我而言,它位于: C:\Users\K\AppData\Local\Android\Sdk\ndk-bundle\platforms
                    2. 然后从此处为您的操作系统下载 NDK:https://developer.android.com/ndk/downloads。在我的情况下,它是 Windows,所以文件应该命名为:android-ndk-r21e-windows-x86_64.zip
                    3. 将 NDK 粘贴并解压缩到 platforms 文件夹中
                    4. 同步 gradle。

                    【讨论】:

                      【解决方案17】:

                      即使你有这个错误仍然存​​在 类路径 'com.android.tools.build:gradle:3.2.1' ,我的意思是 3+ 所以把它改成最新的 改成 distributionUrl=https://services.gradle.org/distributions/gradle-5.6.4-all.zip 到 distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-bin.zip 这个或最新的 如果问题仍然存在。

                      从 Env 变量中移除 Andorid_NDK_HOME

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 2015-07-30
                        • 2017-07-23
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2015-05-10
                        • 2020-07-02
                        • 1970-01-01
                        相关资源
                        最近更新 更多