【问题标题】:NDK Resolution Outcome: Project settings: Gradle model version=5.4.1, NDK version is UNKNOWN errorNDK 解析结果:项目设置:Gradle 模型版本=5.4.1,NDK 版本为 UNKNOWN 错误
【发布时间】:2019-12-27 19:14:32
【问题描述】:

将 Android Studio 和 Gradle 更新到 3.5 后, 我现在收到此错误:

NDK 解析结果:项目设置:Gradle 模型版本=5.4.1,NDK 版本未知

我将 build-gradle 中的 Gradle 版本改回 3.4.2,但没有帮助。

【问题讨论】:

  • 您的NDK 什么版本?它是如何安装的?您如何在您的项目中使用它(在 build.gradle、local.properties 或 ANDROID_NDK_HOME 中指定)? NDK 的 source.properties 文件中有什么内容?
  • 你从哪里得到这个“错误”?我在事件日志中的所有项目中更新 Android Studio 后收到此消息,但它没有影响。一切都按应有的方式构建和运行。我从未使用过 NDK - 所以我不在乎它是否不起作用。
  • 我认为……“NDK 版本”不是主要问题……我再次导入项目……问题已解决
  • 可能没有任何解决方案适合您(它们对我不起作用)。谷歌正在跟踪该问题,您可以在此处加注星标issuetracker.google.com/issues/140403764

标签: android android-studio gradle android-ndk synchronization


【解决方案1】:

升级我的 android studio 后我遇到了同样的问题。您只需打开 local.properties 并将 ndk.dir 路径更改为您的 NDK 路径。

代码:

ndk.dir=D\:\\Android\\SDK\\ndk-bundle
sdk.dir=D\:\\Android\\SDK

【讨论】:

  • 我用 JAVA 编码,我根本没有 NDK
  • 如果您没有也不想要 NDK,这将毫无意义。它是一个可选组件
  • local.properties 说“此文件由 Android Studio 自动生成。请勿修改此文件——您的更改将被删除!”
【解决方案2】:

您可以从文件>项目结构>从左侧面板中选择 SDK 位置并按从 NDK 位置部分下载 NDK。

【讨论】:

  • 不使用就没意义了。
  • 问题是关于错误消息的,答案不应该需要安装它来消除该消息。 NDK 是一个可选包
  • 答案适用于任何使用 NDK 并面临此错误的人,并且在问题中没有提到他是否使用 NDK。@The
  • NDK 几乎占用了您以前的硬盘驱动器的 1GB!而且我不确定是否还有其他影响(如内存、性能、CPU 等)。如果它从不使用,为什么我们需要下载它?我们可以忽略错误吗?
  • @Pablo 是的,如果您不使用 NDK 并且没有任何答案有帮助,请忽略该错误。
【解决方案3】:

升级后,我在一个项目中遇到了同样的问题。 我解决了它,只是从 local.properties 文件中删除了 ndk.dir=D:\Android\SDK\ndk-bundle 行。

【讨论】:

  • 通过说明您如何知道在 android studio 或文件系统中的何处找到文件以及您确定要进行更改的原因,答案可能会更有价值。
  • ndk.dir 未在我的项目中设置。我从来没有使用过NDK。尽管如此,我在 Android Studio 3.5 中得到了这个“错误”。
  • 与 The Incredible Jan 相同,这不在我的 local.properties 中,但我仍然收到此消息。所以这不是一个完整的解决方案,但也许它可以帮助一些人
【解决方案4】:

我遇到了类似的问题,并通过使用Import project (Gradle, Eclipse, etc.) 而不是Open existing Android Studio project 打开项目来解决它。

【讨论】:

  • 这并没有为我解决。再次导入项目后,即使使用 gradle 5.6.1 / plugin 3.5.0 / Android Studio 3.5.0 我仍然有错误
  • 为了完整性(因为我说它对我不起作用)这实际上 确实 对我有用 - 甚至需要 - 修复一个单独的愚蠢类型的 gradle + react -native 本机模块编译问题。因此,作为一个“Android Studio / gradle”技巧可以放在你的技巧包中,这是一个很好的技巧。
  • 转到文件>项目结构>DownloadNDK,它将下载并添加路径到您的本地属性,如果此答案不起作用,可能会解决问题
  • 我关闭了项目,删除了所有 Build 文件夹、.iml 文件、.idea 文件夹。然后打开项目,构建成功
  • @KingKongCoder 我在 File > Project Structure > SDK Location > Download Android NDK 找到了那个链接
【解决方案5】:

我没有在我的项目中使用 NDK,但我遇到了同样的问题。将SDK版本更新到最新后问题消失了 compileSdkVersion 29

【讨论】:

  • 有趣 - 我认为它有潜力,所以我尝试了它,它仍然没有为我解决它。这里有一个未解决的问题issuetracker.google.com/issues/140403764
  • @MikeHardy 目前我正在使用 Gradle 插件版本 3.5.0 和 gradle 版本 5.4.1。尝试更改此版本,同时修复错误。希望对你有所帮助。
  • 一切都是最新的,但还是一样!
【解决方案6】:

当我将 Android Gradle Plugin 版本从 3.1.4 更新到 3.4.0 以及将 Gradle 版本从 4.4 更新到 5.1.1 时,问题就解决了。当然,我用 SDK manager 下载了最新的 NDK(Side by Side)。

【讨论】:

  • 我还必须升级我的 Gradle 版本
【解决方案7】:

在应用级 build.gradle 文件中添加几个库后,我遇到了同样的错误。
解决方案只是清理项目
在菜单栏中选择:Build >> Clean Project
在那之后,错误对我来说消失了。我没有做任何其他事情。

【讨论】:

    【解决方案8】:

    我有一个先前的答案(由于版主已删除),其中我详细说明了一些解决方法(如此处列出的)适用于某些人,但 gradle 中存在一个潜在的错误,因为这些解决方法并不适用于所有人(特别是:它们都不适合我)

    相关的谷歌问题在这里:https://issuetracker.google.com/issues/140403764

    更新:截至今天 (20190920),他们表示他们已经修复了潜在问题,因此我预计今天 (20190920) 之后的未来 gradle 版本将包含修复。

    更新 2:今天 (20190926) 我收到了来自 googler 的回复,说有问题的代码在 Android Studio 中,它包含在 3.6-release 分支中,但目前在任何公开可用的构建中都不可用(Android Studio 3.6 Canary 12 在此修复之前发布)。无论如何,这让您知道要更新哪个组件以及要注意哪些版本。看起来 Android Studio 3.6 Canary 13 及更高版本应该有它https://issuetracker.google.com/issues/140403764#comment13

    在此之前,您可以尝试解决方法,但是当出现供应商错误并且解决方法不起作用时,您只需等待供应商补丁。

    【讨论】:

      【解决方案9】:

      通过 Bitbucket 超链接从版本控制导入项目后,我收到了这个错误(以及其他几个错误)。

      导入后,关闭项目并使用File > New > Import Project 重新导入。之后,一切都正确构建。 (NDK 路径已经正确指定,只导入新工作)

      元: Android Studio 3.5 Build #AI-191.8026.42.35.5791312, built on August 8, 2019 JRE: 1.8.0_202-release-1483-b49-5587405 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o macOS 10.13.6 Gradle 3.4.0

      【讨论】:

        【解决方案10】:

        我通过转到file > Invalidate Caches\Restart 来修复它 IDE 将重新启动,问题将解决

        【讨论】:

        • 转到 'file > project structre > SDK location' 并下载最后一个 NDK 并转到项目 'local.properties' 并指定 NDK 位置,例如 'ndk.dir=C\:\\用户\\联想\\AppData\\本地\\Android\\Ndk'
        • 不使用没有任何意义(NDK)
        【解决方案11】:

        我今天从 Android Studio 3.5.0 升级到 3.5.1 后第一次遇到这个问题。

        我只是从顶部菜单 Build --> Rebuild Project 进行了重建。

        这可能不适用于每个人,具体取决于导致问题的原因,但它适用于我。试一试。

        (另外,我不使用NDK,之前从未下载过它。仍然没有下载它)

        【讨论】:

        • 我使用的是 AS 3.5.1,我的项目需要 NDK。得到确切的错误,清理并重建修复它。在做任何其他事情之前先尝试一下比较容易。
        • @Sean Nice,很高兴它成功了!顺便说一句,我认为重建也是从清洁开始的。我意识到,一旦我打开了较低的构建工具栏,它的第一个任务就是“干净”。从那时起,我才开始只进行重建。 (希望它正在做我认为的哈哈)。
        【解决方案12】:

        当我将 Android Gradle 插件版本从 3.1.2 更新到 3.5.1 时,我也遇到了这个问题

        这是解决这个问题的方法:

        转到项目根文件夹中的gradle.properties file 并添加android.useDeprecatedNdk=true

        【讨论】:

          【解决方案13】:

          在检查项目结构中的建议并更新了两个建议的更新后,问题为我解决了。抱歉,我不记得模块名称了,因为我一按每个模块的更新和 graddle 同步,它们就消失了。自动启动并在此问题消失后

          【讨论】:

            【解决方案14】:

            我有同样的问题。我的环境是:

            • Android Studio 3.5.1
            • Gradle 4.4
            • Android-Gradle-Plugin 3.1.2
            • CMake 3.10 和 3.6

            我通过 SDKManager 卸载了 CMake 3.10。 (安装的 CMake 仅 3.6)

            Gradle 同步和构建成功。

            (1)

            android-gradle-plugin 3.1.2 使用 CMake 3.10。

            在 android-gradle-plugin 3.1.2(或 3.1.+)中,支持 CMake 3.7 及更高版本的功能是预览功能。

            (来自gradle assembleDebuggradle sync的输出消息。)

            (2)

            https://developer.android.com/studio/projects/add-native-code.html#use_a_custom_cmake_version

            SDK 管理器包括 CMake 的 3.6.0 分叉版本和 3.10.2 版本。未在 build.gradle 中设置特定 CMake 版本的项目使用 CMake 3.6.0 构建。

            也许这种行为是 android-gradle-plugin 3.3 或更高版本。 (它来自android-studio 3.3,可以下载CMake 3.10)

            android-gradle-plugin 3.1.2 使用已安装 CMake 的最新版本。

            【讨论】:

            • 我错过了你写的“Gradle 3.5”和“build-gradle back to 3.4.2”。
            【解决方案15】:

            更新 Android Studio 后我遇到了同样的问题。 更新Android SDK Build-Tools后解决了我的问题。 [工具->SDK 管理器->SDK 工具->Android SDK Build-Tools].

            然后尝试清理项目 [构建->清理项目]。

            终于重启了Android Studio IDE……

            【讨论】:

              【解决方案16】:

              将 ndk 版本从 20 降级到 r17c 并将 cmake 版本从 3.10 降级到 3.6.411459 解决了我的问题

              【讨论】:

                【解决方案17】:

                就我而言,Android Studio 安装在新的 Mac 上。只需要下载 Android 9(我的目标/编译 SDK 是 28)和构建工具。之后问题就解决了。

                【讨论】:

                  【解决方案18】:

                  在我最近升级 Android Studio 后,我收到了同样的错误消息。我在这里尝试了其他答案,但都没有奏效。但是@Zahra 的回答指出了一些确实有效的方法:

                  转到文件->项目结构... 在“Android NDK 位置”下,点击下拉菜单并选择“DEFAULT NDK Recommended”选项。

                  在我选择默认路径之前,那里的路径略有不同。在某处使用 SDK 管理器进行升级,路径似乎已经改变。

                  现在在 local.properties 文件中,sdk.dir 设置为与“DEFAULT NDK Recommended”选项相同的目录。

                  【讨论】:

                  • 在尝试了至少 5 种不同的“解决方案”之后,这一个终于让我回到了正轨,现在可以继续研究下一个 Android Studio 错误...
                  【解决方案19】:

                  在我的情况下,我通过升级到 SdkVersion 29 并迁移到 AndroidX 来修复它。

                  【讨论】:

                  • 将目标和编译版本升级到 sdk 29 对我有用:D
                  【解决方案20】:

                  如果您没有使用 NDK,请忽略该错误。

                  我已经安装了 NDK 看看这是否有什么不同。没有区别(除了超过 2 GB 的未使用的 NDK 文件夹:)。所以我删除了它(即删除 ndk 文件夹并删除您之前设置的 NDK 环境变量)。

                  【讨论】:

                    【解决方案21】:

                    您需要使用 SDK 管理器安装 NDK

                    【讨论】:

                      【解决方案22】:

                      我在 mac 上也遇到了同样的问题。

                      建议:强制 .gradle 文件夹自行重建..

                      这仍然在事件日志中显示“NDK 版本未知”,但它构建成功并且没有给我任何问题。 (我没有下载NDK)

                      1. 打开您的 /Users/macuser/ 文件夹
                      2. 按 CMD + SHIFT + 。 (点/句点)查看隐藏文件夹
                      3. 删除 .gradle 文件夹
                      4. 重启 Android Studio

                      这将导致 Android Studio 重建并重新下载您的 .gradle 文件夹,以修复您在此过程中的冲突文件。

                      【讨论】:

                      • 这对我有用,但只是第一次。如果我在没有先删除 .gradle 的情况下重新打开项目,那么我会得到与以前相同的错误。
                      • 是的,错误似乎会保留在日志中。我的也在进行中,但项目构建和运行都很好。
                      【解决方案23】:

                      我刚刚关闭了项目,关闭了 android studio,重新启动了我的电脑,跟踪了我的项目并删除了“B:/PROJECTNAME/.idea”中的 .Idea 文件夹,瞧。

                      问题解决了。它重新同步。 N/B:我的 gradle 是 androidx。祝某人好运。

                      【讨论】:

                        【解决方案24】:

                        在 build.gradle 脚本中将 claaspath 更改为 'com.android.tools.build:gradle:3.5.2'

                        【讨论】:

                          【解决方案25】:

                          好的。我最近下载了最新版本的 Android Studio 并得到了类似的错误。所以最终我创建了一个新项目。 选择 Kotlin 语言,然后选择 Jelly Bean(谈论“可供选择的选项”)。 然后整个同步开始,但第一次同步失败,最终它再次自动同步,一切开始工作。 因为我是初学者,所以修改了默认代码(文本),但没有收到错误消息。 预览没问题,我继续学习。 抱歉,我无法更好地解释它。我只是一个初学者。 哦!您需要连接到 Internet 才能工作。

                          【讨论】:

                            【解决方案26】:

                            如果在 Android Studio 升级后出现此问题,并且您从右下角通知启动插件更新:打开 File > Project structure,然后将 Android Gradle 版本更改为您的 Android Studio 版本并将 Gradle 版本降级为以前的版本。

                            就我而言,我将 Android Gradle 插件从 3.5.3 降级到 3.2.1,将 Gradle 版本从 5.4.1 降级到 4.6。

                            【讨论】:

                              【解决方案27】:

                              我将 gradle-wrapper.properties 文件的 gradle 版本从 4.1 修改为 4.6。

                              【讨论】:

                                【解决方案28】:

                                我遇到了这个问题,但没有一个解决方案对我有用。问题是,出现此错误或警告的原因可能非常广泛。您可以按照以下步骤找出问题所在:

                                NDK 缺失

                                当 Gradle 开始编译原生依赖项时,它会在您的“app”文件夹中创建“.cxx”文件夹。在该文件夹中,您可以找到“ndk_locator_record.json”文件,这是一种非常奇怪的日志文件。它基本上是 Gradle 检查以查找 NDK 文件夹的所有路径。如果 NDK 版本号有任何错误或不匹配,您可以在此文件中查看。

                                NDK 构建失败

                                由于某些未知原因(可能是 Gradle 中的错误),ndk build 不会在事件日志窗口中显示实际错误,而是显示失败,例如 Gradle sync failed: executed external native build for ndkBuild .... 以下是 NDK 解析结果:项目设置:Gradle 模型版本=5.4.1,NDK 版本未知

                                在这种情况下,请返回 .cxx > ndkBuild > debug > x86(x64 或任何其他 cpu 架构) 在此文件夹中,您可以找到“json_generation_record.json”文件,它是相同类型的日志,通常最后一个条目有实际错误。例如,对我来说是

                                 ../../sdk/native/jni/OpenCV.mk: No such file or directory
                                 make: *** No rule to make target '../../sdk/native/jni/OpenCV.mk'.  Stop.
                                

                                您可以从这里开始找出问题所在。

                                【讨论】:

                                  【解决方案29】:

                                  如果未安装 NDK,而 Android 项目需要它,则首先安装 NDK。

                                  windows OS 上,将 NDK 路径添加到 PATH 环境变量。这将解决版本问题。

                                  在我的例子中,NDK 路径是 C:\Users\\AppData\Local\Android\Sdk\ndk\21.0.6113669

                                  【讨论】:

                                    【解决方案30】:

                                    我之前遇到过这个问题,我通过确保对应用目录具有正确的权限来解决它。

                                    我使用的是 macOS,所以我这样做了:

                                    chmod -R 777 your_android_project
                                    

                                    问题消失了。

                                    【讨论】:

                                      猜你喜欢
                                      • 2019-12-04
                                      • 2019-12-28
                                      • 2020-04-16
                                      • 2020-01-02
                                      • 1970-01-01
                                      • 2018-04-10
                                      • 2018-11-29
                                      相关资源
                                      最近更新 更多