我对此处发布了类似的问题:
Android NDK: why ndk-build doesn't generate .so file and a new libs folder in Eclipse?
...虽然我运行的是Windows 7,但不是Mac OS。基本上运行ndk-build命令,没有错误但不创建.so文件(同样,因为我在Windows上这应该创建.dll而不是.so?)。我尝试从root,jni,src文件夹等运行命令,但得到了相同的结果; cmd只需几秒钟后返回到提示器。我使用NDK_LOG = 1参数从jni文件夹再次运行它以查看发生了什么。以下是在jni文件夹中运行ndk-build之后的日志结果的一部分内容(在成功识别平台之后等)...
Android NDK:在/ workspace / NdkFooActivity / jni中寻找jni / Android.mk
Android NDK:在/ workspace / NdkFooActivity中寻找jni / Android.mk
Android NDK:找到它!
Android NDK:找到项目路径:/ workspace / NdkFooActivity
Android NDK:输出路径:/ workspace / NdkFooActivity / obj
Android NDK:解析/cygdrive/c/android-ndk-r8/build/core/default-application.mk
Android NDK:在/workspace/NdkFooActivity/project.properties中找到APP_PLATFORM = android-15
Android NDK:应用程序本地目标未知平台'android-15'
Android NDK:切换到android-14
Android NDK:使用构建脚本/workspace/NdkFooActivity/jni/Android.mk
Android NDK:应用程序“本地”不可调试
Android NDK:选择发布优化模式(应用程序不可调试)
Android NDK:添加导入目录:/ cygdrive / c / android-ndk-r8 / sources
Android NDK:为ABI'armeabi'建立应用程序'local'
Android NDK:使用'armeabi'ABI的目标工具链'arm-linux-androideabi-4.4.3'
Android NDK:寻找带有'cxx-stl / system'标签的导入模块
Android NDK:探测/cygdrive/c/android-ndk-r8/sources/cxx-stl/system/Android.mk
Android NDK:在/ cygdrive / c / android-ndk-r8 / sources / cxx-stl / system中找到
Android NDK:Cygwin依赖文件转换脚本:
...之后它只运行最后一行中提到的脚本,然后终止。有任何想法吗?谢谢!
答案 0 :(得分:2)
设置构建器。有关如何执行此操作,请参阅以下文章:
http://maxters.net/2011/02/android-ndk-builder-for-eclipse-in-windows/
从NDK r8开始有一个“小”变化 - Cygwin不再需要了,我在使用Cygwin和NDK r8构建本机库时遇到了麻烦 - 有一些关于cxx-stl的错误消息......
上面链接中的几乎所有内容都可以,但是将主要选项卡中的参数留空并将位置更改为:
${env_var:ANDROID_NDK_ROOT}/ndk-build.cmd
我使用系统变量路径ANDROID_NDK_ROOT
,但您可以提供ndk-build.cmd的完整路径。
此外,无需在“环境”选项卡中设置任何变量。
以这种方式设置你的建造者,你会没事的。
请注意,Android是建立在Linux操作系统的顶层,所以即使你在Windows上,你也会得到扩展名为.so的Linux库。
答案 1 :(得分:1)
以下链接是有启发性的,但是如果您在CDT之后在Eclipse中配置NDK支持它已经取消了(2017年夏天已经发布),那么错过了一个细节。
http://maxters.net/2011/02/android-ndk-builder-for-eclipse-in-windows/
您需要配置外部构建器位置,而不是指向cygwin \ bin \ bash.exe并添加为Argument您的ndk-build.cmd位置,这对我在Windows 7和10上的作用。
In"编辑配置"外部构建器的对话框如下: - 位置 - >指定你的" ndk-build.cmd"是。即" D:\ Android \ NDK \ ndk-build.cmd" - for Arguments - >只需指定" all"
答案 2 :(得分:0)
NDK构建系统依赖通配符来查找要编译的源代码。如果某个地方有路径错误,它将找不到任何来源并且什么都不做。仔细检查Android.mk。除非你发布Android.mk和源树的描述,否则不能说更多。