NDK 不包含任何平台
Posted
技术标签:
【中文标题】NDK 不包含任何平台【英文标题】:NDK does not contain any platforms 【发布时间】:2019-10-07 06:56:40 【问题描述】:我想安装 NDK 以便能够使用 C/C++ 本机库。在尝试安装 NDK 时,我收到一条错误消息,提示我的 C: 驱动器中没有足够的磁盘空间(因为下载位置位于临时文件夹)。
我已尝试更改系统变量中的临时路径,但 ndk 仍会下载到 C:\Users\User\Appdata\Local\Temp\PackageOperation02。
然后我转到项目结构以更改 android NDK 位置,但在尝试选择任何文件夹作为我的 NDK 位置时,我收到一条错误消息,提示“”。
对于这方面的帮助或下载位置为何位于 Temp 文件夹的原因,我们将不胜感激。
【问题讨论】:
您是否尝试将其移动到包含空格的路径?不能从包含空格的路径使用 NDK。 名称中有空格?不,我要下载 ndk 的路径是 E:\Temp 这看起来像一个副本:***.com/questions/46741528/… 这能回答你的问题吗? NDK is missing a "platforms" directory. while trying to build 【参考方案1】:对于 2021 年看到此内容的人:
自 r19 以来,Android NDK 的 platform
目录已过时。 NDK 团队removed it altogether in r21 2021 年 1 月。虽然已经过时,但仍然可以在 Project Structure 窗口中导致上述错误。当您选择 r21 或更高版本并尝试应用时,Android Studio IDE 的稳定版本(至少在 Mac 上)仍在寻找platform
目录。 IDE 报错“NDK 不包含任何平台。”
在 Android Studio 更新为停止查找 platform
之前,您可以自己编辑 local.properties
文件,如下所示:
ndk.dir=/Users/[username]/Library/Android/sdk/ndk/22.0.7026061
sdk.dir=/Users/[username]/Library/Android/sdk
这是“项目结构”窗口通常在幕后为您做的事情。
【讨论】:
在我的情况下,我无法更改 JDK 位置,直到我从 local.properties 中删除ndk.dir
。删除它后,我可以再次更改 JDK 位置。
?这不起作用,更改此 local.properties 只是 ndk 的位置,它也会寻找平台。
@flankechen 平台目录不再在 NDK 中,所以没有什么可找的。您可以使用 local.properties 文件指向 NDK,而不是使用 UI 窗口来规避错误。
@jowo 谢谢,是的,ndk 22 没有平台,最新的 android studio 正在寻找它,无论使用 local.properties 还是 ui 窗口,事实上,我什至找不到使用 ndk 22 的正确方法现在。
Android Studio 将继续在“项目结构”窗口中显示该错误,您可以忽略该错误。如果即使在尝试运行您的应用程序时它也给您一个平台错误,那将是一个不同的问题。【参考方案2】:
ndk 的目录现在位于名为 ndk 和 ndk-bundel 的 sdk 文件夹中,但是现在 ndk 的分配发生了变化,我们需要像这样在 Android Gradle Plugin (AGP) 中添加 ndk 版本
android
ndkVersion "version" // e.g., ndkVersion '21.3.6528147'
您还需要从 sdk 管理器的 SDK 工具中安装 CMake,并且还需要从 Gradle 中进行设置,如下所示
android
...
externalNativeBuild
cmake
...
version "cmake-version"
【讨论】:
【参考方案3】:当我使用“SOME_DIRECTORY/ndk”之类的东西设置 NDK 目录时,我遇到了同样的问题。
我通过将其设置为“SOME_DIRECTORY/ndk/21.0.6113669”解决了这个问题。
【讨论】:
从 SDK Manager 下载 ndk 包后,我选择目录为 ndk/22.0.7026061。它仍然有同样的问题。我尝试在 local.properties 中设置路径变量或 ndk.dir。就这样【参考方案4】:您可能需要旧版本的 ndk,例如 android-ndk-r20b。因为我发现解压后的android-ndk-r22文件夹中没有platforms目录。我通过将 Android Studio 配置为 android-ndk-r20b 解决了这个问题。这是下载链接https://developer.android.com/ndk/downloads/older_releases
【讨论】:
【参考方案5】:正如https://developer.android.com/studio/projects/install-ndk 所建议的那样 如果您使用 3.5.0 以上的 gradle 版本并卸载旧版 NDK,则应从项目的 local.properties 文件中删除现已弃用的 ndk.dir 值。
【讨论】:
【参考方案6】:这类似于@YuuY 的回答。由于我无法添加屏幕截图以发表评论,因此我发布了一个新答案。
文件 > 项目结构...> 确保目录路径包含版本号(例如 C:\Users...\ndk\21.3.6528147)
【讨论】:
【参考方案7】:自 r19 以来,Android NDK 的平台目录已过时。 NDK 团队在 2021 年 1 月的 r21 中将其完全删除。虽然已过时,但仍会在 Project Structure 窗口中导致上述错误。当您选择 r21 或更高版本并尝试应用时,Android Studio IDE 的稳定版本(至少在 Mac 上)仍在寻找平台目录。 IDE 报错“NDK 不包含任何平台。”
在 Android Studio 更新停止寻找平台之前,您可以自己编辑 local.properties
文件,如下所示:
sdk.dir=C\:\\Users\\YOUR USER NAME\\AppData\\Local\\Android\\sdk
ndk.dir=C\:\\Users\\YOUR USER NAME\\AppData\\Local\\Android\\sdk\\23.0.7421159
flutter.sdk=C\:\\src\\flutter
【讨论】:
【参考方案8】:我建议使用ANDROID NDK REVISION HISTORY
下载r18b或任何适合你的版本,手动下载,解压到SDK文件夹中。
然后进入Android Studio中的项目
编辑 local.properties 文件并添加 ndk.dir=path-to-sdk/android-ndk-r18b
【讨论】:
【参考方案9】:对我来说,解决方案实际上是从 local.properties 中删除 ndk 位置
所以
ndk.dir=/Users/[username]/Library/Android/sdk/ndk/22.0.7026061
sdk.dir=/Users/[username]/Library/Android/sdk
会变成
sdk.dir=/Users/[username]/Library/Android/sdk
【讨论】:
【参考方案10】:就我而言,我使用的是 Windows 11 和 Android studio Artic Fox 2020.3.1 补丁 2
我尝试了以上所有选项都不起作用,但是当我更新我的 Gradle 版本时,它自动解决了我的问题
dependencies
classpath 'com.android.tools.build:gradle:7.0.2'
希望这对某人有所帮助。
【讨论】:
以上是关于NDK 不包含任何平台的主要内容,如果未能解决你的问题,请参考以下文章