我曾尝试搜索 Internet 和 StackOverflow(文章太多,数不清),但找不到所有这些内容的帮助:
- 比 2013 年更近
- 如果在 Windows 上开发,则不需要 Cygwin
- 适用于 Android Studio,而不是 Eclipse。
我是第一次涉足 Android 开发,而我新加入的项目依赖于使用 NDK 进行开发。我一直在阅读 NDK 附带的文档,但遇到了这个示例的石墙。
我正在尝试构建hello-jni
NDK 中的示例项目。这是我的环境:
- Android Studio 1.4(最新,目前可用的稳定版本)
- NDK 版本:r10e
- 操作系统:Windows 7
Application.mk 文件的内容:
APP_ABI := all64 // Came with 'all', read somewhere on SO that it
// should be 'all64'. Result is the same.
Android.mk 文件内容:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := hello-jni
LOCAL_SRC_FILES := hello-jni.c
include $(BUILD_SHARED_LIBRARY)
我的 PATH 环境变量包括我的 NDK 根文件夹和路径\prebuilt\windows-x86_64\bin
(因为我阅读了它应该阅读的许多文章之一。)当我导航到 hello-jni 根文件夹并调用 ndk-build 时,我只出现有错误。
c:\NDK\android-ndk-r10e\build\core\build-local.mk:40: c:/NDK/android-ndk-r10e/build/core/build/core/init.mk: No such file or directory
c:\NDK\android-ndk-r10e\build\core\build-local.mk:191: \add-application.mk: No such file or directory
c:\NDK\android-ndk-r10e\build\core\build-local.mk:206: \setup-imports.mk: No such file or directory
c:\NDK\android-ndk-r10e\build\core\build-local.mk:223: \build-all.mk: No such file or directory
make.exe: *** No rule to make target `\build-all.mk'. Stop.
如果人们还需要其他什么来帮助我,请说我会尽我所能。所有帮助将不胜感激。
编辑:我在 Windows 上看到的大多数文章都提到了 Cygwin,但根据文档,它不是必需的。如果这是不正确的,请纠正我?
除了从\android-ndk-r10e\docs\Programmers_Guide\html\md_3__key__topics__building__s_t_a_n_d_a_l_o_n_e-_t_o_o_l_c_h_a_i_n.html
视窗支持
Windows 二进制文件不依赖于 Cygwin。好消息是它们因此更快,坏消息是它们不理解 Cygwin 路径规范,例如 /cygdrive/c/foo/bar(而不是 C:/foo/bar)。
NDK 构建系统确保从 Cygwin 传递到编译器的所有路径都被自动翻译,并为您处理其他可怕的事情。如果您有自定义构建系统,您可能需要自己处理问题。