如何修复android studio 2.3 NDK bug?

时间:2017-03-08 21:36:09

标签: android android-ndk

我认为这是一个错误,因为在新的更新之前我没有遇到任何问题。所以我不能使用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文件。

17 个答案:

答案 0 :(得分:25)

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

背景:

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

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

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

    所以即使是" NDK-无辜的"可能成为它的受害者。

  3. 问题是Gradle只是通过添加字符串" / ndk-bundle"来计算NDK文件夹的位置。到SDK文件夹位置,即使您从未安装过NDK。

  4. 在确定某个特定位置存在的NDK文件夹的错误期望后,每次构建时,Gradle都会向您发出警告,指出您已经错过"那个文件夹。这只是一个警告,并不会阻止您的构建完成,但它很烦人。

  5. 我如何停止了令人生气的消息:

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

    为此,您可以访问:

    档案 - >项目结构 - > SDK位置

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

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

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

    C:\ dev的\ astudiosdk \ NDK束

    单击“确定”按钮,然后重新构建。错误消失了。

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

答案 1 :(得分:10)

听起来像是从Android Studio IDE更新SDK可能有帮助

步骤是:

  1. 转到Tools (top-menu item) > Android > SDK Manager
  2. 点击SDK工具标签
  3. 向下滚动至 NDK 复选框update-option
  4. 屏幕截图:How to update Android NDK in place?

答案 2 :(得分:10)

只需安装Android NDK即可。

修复了我的错误和警告!

https://i.stack.imgur.com/Lsu8E.png

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

答案 3 :(得分:7)

通过从SDK根文件夹中删除空的ndk-bundle文件夹来修复此问题(不知道为什么以及何时出现):

ndk-bundle folder in android SDK folder

以下是对the issue on Android bug tracker

的帮助的解释
  

对于任何人仍然在插件3.0.0-alpha1或。上遇到此问题   后来。请提交新的错误并尝试回答#33中的所有问题。   我们需要更多信息来调试问题并向a添加注释   封闭的bug是一种让它迷失的简单方法。

     

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

答案 4 :(得分:7)

你可以尝试一下:

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

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

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

enter image description here

答案 5 :(得分:4)

我遇到了这个问题:

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.

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

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

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

Gradle 版本:6.3

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

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

答案 6 :(得分:2)

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

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

您无需安装NDK。

答案 7 :(得分:1)

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

答案 8 :(得分:1)

这种类型的错误陈述是: -

  1. NDK缺少一个&#34;平台&#34;目录。
  2. 如何设置ANDROID_NDK_HOME以便Android Studio不要求ndk位置?
  3. 解决方案

    打开您的build.gradle,在这里您可以看到两条gradle路径: classpath 'com.android.tools.build:gradle:2.3.0' classpath 'com.android.tools.build:gradle:2.2.0'

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

    清理项目gradlew clean

    这对我来说永远不需要设置ndk路径或ndk设置。

    Android Studio NDK 2.3 BUG

答案 9 :(得分:0)

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

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

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

答案 10 :(得分:0)

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

您看到的警告只是警告。 有趣的是,很可能您留下了某些语言的string.xml而不需要名称。 或某些本地化的字符串-.xml具有不需要的字符,例如“ '”,应将其替换为例如“ \'”。  总体而言,它可能与您的应用程序资源有关。首先请仔细检查它们。

答案 11 :(得分:0)

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

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

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

中的ndk-bundle
path/to/your/Android/sdk/

我知道了。

答案 14 :(得分:0)

就我而言,我不得不将 NDK 从 22.1.7171670 降级到 21.4.7075529。我是从 this link

那里了解到这个解决方案的

答案 15 :(得分:0)

如果您确实需要在项目中使用 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 文件夹中 enter image description here
  4. 同步gradle。

答案 16 :(得分:0)

即使你有这个错误仍然存​​在 类路径 '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 这个或最新的 如果问题仍然存在。

移除 Andorid_NDK_HOME 表单环境变量