您好我是Android NDK开发的新手。
MacBook-Pro:JNIexample sk$ ndk-build
usage: dirname path
gmake: /Users/sk/build/core/build-local.mk: No such file or directory
gmake: *** No rule to make target `/Users/sk/build/core/build-local.mk'. Stop.
为什么我会收到他的错误?
答案 0 :(得分:14)
所以我遇到了同样的麻烦,看起来如果我有任何目录是完整目录路径的一部分,其中dir-name与空格('')介于两者之间,那么'ndk-build'将不会能够解决路径。所以我的目录名称“开发工具”不够好,所以我将其改为“developmenttools”并且它有效。如果我在'ndk-build'中对路径进行硬编码,那么它就可以正常工作了。
答案 1 :(得分:1)
您需要指定要构建的项目。像这样:ndk-build -C location_of_project。
例如,要构建NDK附带的hello-neon示例,您将转到ndk安装根并执行ndk-build -C samples / hello-neon
答案 2 :(得分:1)
ndk-build工具实际上只是一个使用build-local.mk文件调用gmake的包装器。它通过创建以ndk构建工具的位置为根的相对路径来查找build-local.mk文件。听起来你没有安装完整的NDK,或者可能移动了ndk-build工具而没有移动其余的NDK内容?
答案 3 :(得分:0)
我也遇到了这个问题。我解决了它并发布了完整的答案here。我希望它可以帮助你。
答案 4 :(得分:0)
请注意错误消息: gmake:/Users/sk/build/core/build-local.mk:没有这样的文件或目录。
build / core / builid-local.mk实际上在ndk的根目录中,为什么它被列为/ Users / username / build ...?
我在Macbook上遇到了同样的错误。我已将ndk放在/ Applications / Android Studio.app目录中,因为名称之间有一个空格,不知何故ndk中的工具无法解析隐含路径。这就是打印错误消息的原因。
后来我将Android Studio.app重命名为Android-Studio.app,从而解决了这个问题。
答案 5 :(得分:0)
对我而言,解决方案是不同的。如果你查看ndk-build脚本,你会看到它立即运行`dirname $ 0`来获取目录。
我从命令行调用了“ndk-build”,它使用的是我放在/ usr / local / bin /中的ndk-build脚本的副本,所以我的错误是'/ usr / local / bin / build / core / build-local.mk:没有这样的文件或目录'。
解决方案是在真正的ndk-build脚本所在的ndk文件夹中,并使用-C / path / to / project选项告诉它从哪里开始。所以,'cd / path / to / ndk'然后运行'./ndk-build -C / path / to / project'
答案 6 :(得分:0)
我遇到了同样的问题。我创建了新工作区并将现有项目导入其中。但忘了在windows-> preferences-> Android-> NDK中添加ndk位置。