Android NDK:断言失败:LOCAL_MAKEFILE未定义

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android NDK:断言失败:LOCAL_MAKEFILE未定义相关的知识,希望对你有一定的参考价值。

我正在尝试构建项目,并且在执行gradle任务进行构建时,收到以下错误:

~/Library/android/sdk/ndk/21.2.6472646/build/core/prebuilt-library.mk:20: *** Android NDK:  Assertion failure: LOCAL_MAKEFILE is not defined    .  Stop.

我以前从未使用过NDK,所以不确定从哪里开始。

显然LOCAL_MAKEFILE没有定义,但是我应该在哪里定义?

下面是预建库文件的第20行:

    15  
    16  # this file is included from prebuilt-shared-library.mk or
    17  # prebuilt-static-library.mk to declare prebuilt library binaries.
    18  #
    19  
    20  $(call assert-defined, LOCAL_BUILD_SCRIPT LOCAL_MAKEFILE LOCAL_PREBUILT_PREFIX LOCAL_PREBUILT_SUFFIX)
    21  
    22  $(call check-defined-LOCAL_MODULE,$(LOCAL_BUILD_SCRIPT))
    23  $(call check-LOCAL_MODULE,$(LOCAL_MAKEFILE))
    24  $(call check-LOCAL_MODULE_FILENAME)
    25  

有人知道发生了什么吗?

欢迎大家的帮助!

谢谢你!

答案

要解决该问题,我需要删除所有NDK版本并仅使用19和20版本。

enter image description here

另一答案

我有同样的错误,这有所帮助:

ndk / 21.2.6472646 / build / core / definitions.mk中更改行:

$(call ndk-stl-register,system)

to

$(call ndk-stl-register,system,cxx-stl/llvm-libc++)

编译后,放回所有内容

以上是关于Android NDK:断言失败:LOCAL_MAKEFILE未定义的主要内容,如果未能解决你的问题,请参考以下文章

Android NDK - 构建 TessTwo(Android 的 Tesseract 工具的分支) - ndk-build 失败

Android:NDK:超级打开失败:ENOENT(没有这样的文件或目录)错误

如何解决Android ndk build命令失败?

Android Studio 构建 NDK 项目非零退出值失败

由于 NDK 版本不兼容,Android 构建在 CI 中失败,但在本地不兼容

Android NDK:获取 java.lang.UnsatisfiedLinkError:dlopen 失败:找不到“libffmpeg.so”引用的符号“signal”