[英]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 文件。
我能够阻止这条烦人的消息; 这对我有用。
背景:
我根本没有使用 NDK,也从未安装过 NDK。
但是,正如 xsveda 在此处的另一个答案中所述,这是此处记录的 Gradle 错误:
https://code.google.com/p/android/issues/detail?id=228424
因此,即使是“NDK 无辜者”也可能成为其受害者。
问题是 Gradle 只是通过将字符串“/ndk-bundle”附加到 SDK 文件夹位置来计算 NDK 文件夹的位置,即使您从未安装过 NDK。
在建立对存在于特定位置的 NDK 文件夹的这种错误期望之后,每次构建时,Gradle 都会警告您“丢失”了该文件夹。 这只是一个警告,不会阻止您的构建完成,但很烦人。
我如何停止烦人的消息:
由于磁盘空间很便宜,而且我的时间对我来说很宝贵,我通过安装 NDK 解决了这个错误,即使我不打算使用它。
为此,您可以访问:
文件 -> 项目结构 -> SDK 位置
并查看 Android NDK 位置字段。 如果您尚未安装 NDK,则此字段将为空。
在这种情况下,该字段下方将是用于安装 NDK 的链接。 单击该链接并安装它。 这需要几分钟。
安装完成并关闭安装进度对话框后,NDK 的位置将自动写入 Android NDK 位置字段。 这将类似于:
C:\\dev\\astudiosdk\\ndk-bundle
单击确定按钮并再次构建。 错误消失。
请注意,您可能只需在此字段中键入所需的文件夹; 我没有尝试。 但我不知道这是否会导致一些其他问题,尤其是如果您最终决定实际使用 NDK。
听起来从 Android Studio IDE 更新 SDK 可能会有所帮助
步骤是:
Tools (top-menu item) > Android > SDK Manager
此处的屏幕截图: 如何就地更新 Android NDK?
通过从 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,则删除它是安全的。
我遇到了这个问题:
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
。摇篮版本: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。
这种类型的错误语句是:-
解决方案:
打开你的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 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 放在那里。
platforms
文件夹。 就我而言,它位于: C:\\Users\\K\\AppData\\Local\\Android\\Sdk\\ndk-bundle\\platforms
android-ndk-r21e-windows-x86_64.zip
platforms
文件夹中即使您有类路径 '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.