繁体   English   中英

如何修复 android studios 2.3 NDK 错误?

[英]How to fix android studios 2.3 NDK bug?

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

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

背景:

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

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

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

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

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

  4. 在建立对存在于特定位置的 NDK 文件夹的这种错误期望之后,每次构建时,Gradle 都会警告您“丢失”了该文件夹。 这只是一个警告,不会阻止您的构建完成,但很烦人。

我如何停止烦人的消息:

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

为此,您可以访问:

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

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

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

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

C:\\dev\\astudiosdk\\ndk-bundle

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

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

只需安装Android NDK

这修复了我的错误和警告!

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

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

听起来从 Android Studio IDE 更新 SDK 可能会有所帮助

步骤是:

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

此处的屏幕截图: 如何就地更新 Android NDK?

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

android SDK文件夹中的ndk-bundle文件夹

这是为什么它有助于解决 Android 错误跟踪器上的问题的解释:

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

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

你可以试一试:

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

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

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

在此处输入图片说明

我遇到了这个问题:

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安装 NDK 截图):

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

摇篮版本:6.3

Android Studio 版本:Android Studio 4.1.1 Build #AI-201.8743.12.41.6953283,2020年11月5日构建

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

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

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

您不需要安装 NDK。

这种类型的错误语句是:-

  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 BUG

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

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

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

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

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

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

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

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

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

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

path/to/your/Android/sdk/

我得到了解决方案。

就我而言,我不得不将 NDK 从 22.1.7171670 降级到 21.4.7075529。 我从这个链接学到了这个决议

如果确实需要在项目中使用 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. 同步梯度。

即使您有类路径 '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 表单环境变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM