【问题标题】:Your APP_BUILD_SCRIPT points to an unknown file using Android ndk-build您的 APP_BUILD_SCRIPT 使用 Android ndk-build 指向一个未知文件
【发布时间】:2026-02-10 23:00:01
【问题描述】:

我在尝试编译 Android NDK 项目时收到以下错误:

ndk-build 
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /home/lambergar/work/APIExample/jni/Android.mk    
/home/lambergar/android/ndk/android-ndk-r5c/build/core/add-application.mk:116: *** Android NDK: Aborting...    .  Stop.

奇怪的是,“未知文件”(Android.mk)存在于报告为无效的路径下。

【问题讨论】:

  • 尝试将标志 NDK_LOG 设置为 1 来构建您的项目:即 $NDK/ndk-build NDK_LOG=1 以查看有关此错误的更多信息...也许this 可以帮助您...

标签: android android-ndk


【解决方案1】:

同样的问题(在 Windows 7 中),但原因不同。

在环境参数中搜索后,我发现名为“NDK_PROJECT_PATH”的邪恶东西是无效路径。

删除它,事情又开始了;)

【讨论】:

  • 这很重要!其他建议可能会导致人们添加 NDK_PROJECT_PATH 环境变量并将其指向 NDK 目录或其他东西。如果存在,并且您尝试编译一个新项目,它会抱怨,因为它正在寻找 NDK_PROJECT_PATH 中的文件。我刚刚遇到了同样愚蠢的问题。这解决了它。
【解决方案2】:

在我的情况下,问题在于项目路径中的空格。在这种情况下,请更改项目路径文件夹并重新导入项目。

【讨论】:

  • 旧的新事物一次又一次地打击我们;)
【解决方案3】:

我也遇到了同样的问题。我通过在 $NDK/apps/ndktestapp 中创建一个包含以下内容的 Application.mk 来修复它:

APP_PROJECT_PATH := /cygdrive/c/workspace/MyApp

然后调用

make APP=ndktestapp

来自 NDK 根。希望对您有所帮助。

【讨论】:

  • 为了更灵活,我推荐APP_PROJECT_PATH := $(call my-dir)
【解决方案4】:

今天刚看到这个问题。 在我的情况下,实际问题是项目路径中的空格。

(是的,如果文件夹名称中有空格,ndk-build 将不会编译您的项目)

【讨论】:

    【解决方案5】:

    我通过向项目添加新构建解决了这个问题,瞧,它可以工作了...不过不知道 CLI 构建有什么问题。

    【讨论】:

      【解决方案6】:

      您需要将环境变量NDK_PROJECT_PATH 设置为您正在构建的项目的根目录。 NDK 项目的根目录通常包含 ./jni 目录。

      export NDK_PROJECT_PATH={root_of_project}
      

      如果您的 JNI 代码在库中,则将 NDK_PROJECT_PATH 设置为库项目。

      【讨论】:

        【解决方案7】:

        只花了一两个小时试图弄清楚这一点。很多很多人都遇到过这个问题。但是当我发现我实际上没有文件名 Android.mk 它被命名为 Andriod.mk 并且这足以给我带来很多麻烦。对我最初的咆哮感到抱歉,但这最终是整个问题。我建议如果你有这个问题,你应该检查一切,直到你发现有问题。

        这解决了我的问题。谢谢你们让我走上正轨。

        【讨论】:

          【解决方案8】:

          不要在项目目录中创建任何空白。如果错误再次出现 然后编辑 buildTypes 块下方的 build.gradle(Module:app) 并添加如下行:

           buildTypes {
              release {
                 ......................
              }
          }
          sourceSets { main { jni.srcDirs = ['src/main/jni/','src/main/jniLibs/'] } }
          externalNativeBuild {
              ndkBuild {
                  path 'build/intermediates/ndk/debug/Android.mk'
              }
          }
          

          【讨论】:

          • 虽然这不是一个公认的答案(因为项目路径中没有空格),但它可以帮助我找到项目中的问题。
          【解决方案9】:

          请删除这些目录

          rm -rf .externalNativeBuild //if exits
          
          rm -rf app/.externalNativeBuild
          
          rm -rf app/.cxx/ //if exits
          
          rm -rf app/build/
          

          然后重建项目。

          【讨论】:

          • 这为我解决了这个问题。我最近在 Android Studio 中重构了我的模块名称。旧项目文件夹名称已缓存在 .externalNativeBuild 配置文件中(其中存储了传递给 ndk-build 的 args)
          • 对我没有帮助,在没有 android studio 的情况下构建(只是 ndk-build),虽然在我的情况下很奇怪,但我对另一个可以工作的项目有完全相同的 .mk 文件。
          【解决方案10】:

          和@phavens一样,我认为只是Android.mk和android.mk文件这个词有问题,只花了5分钟..嘿嘿

          【讨论】:

          • Gradle 路径似乎区分大小写,即使在 Windows 上也是如此! android.mk != Android.mk.
          【解决方案11】:

          问题详情:

          Android NDK:您的 APP_BUILD_SCRIPT 指向一个未知文件:/jni/Android.mk ...:*** Android NDK:正在中止...。停止。 通常这不是你项目的路径,所以出现这个错误的原因是ndk找不到正确的Android.mk文件路径。 解决方案:

          在环境变量中将NDK_PROJECT_PATH添加到“./”,目的是告诉NDK当前要编译的jni位于项目所在目录。

          【讨论】:

          • 这是我的解决方案!我的ndk-build NDK_PROJECT_PATH=/xxx/ 命令行不正确 [path] 其中/xxx/ 匹配/xxx/jni/android.mk
          【解决方案12】:

          我遇到了与本主题类似的问题。我的解决方案是:首先检查文件是否存在于正确的路径中。其次,如果您的路径有任何空格,请将其删除或将您的项目重新定位到简单路径。然后重建它。

          【讨论】:

            【解决方案13】:

            我刚刚安装了 Android-NDK 并尝试了“ndk-build”。 我有完全相同的错误。我就是这样打败它的。

            bash
            
            export NDK_PROJECT_PATH={root_of_android_ndk}/samples/hello-jni
            
            ./ndk-build
            

            这行得通。

            【讨论】:

              【解决方案14】:

              在 Android.mk 文件中,您提供 jni 文件夹所在的路径... 在你的情况下 ARTOOLKIT_DIR :=/home/lambergar/work/APIExample/

              【讨论】:

                【解决方案15】:

                在我的情况下,项目文件夹名称中有一个空格,删除了空格,将其重新导入到 Android Studio 并解决了问题

                【讨论】:

                  【解决方案16】:

                  对我来说,删除了 .gradleapp/.externalNativeBuild 目录,它起作用了。

                  【讨论】:

                    【解决方案17】:

                    Android Studio 中的 Gradle Experimental 插件添加了对 Native 项目构建的支持。

                    【讨论】: