Java Android NDK:您的应用程序构建脚本指向未知文件:./jni/Android.mk
我在stackoverflow(,和)中看到了4个类似的问题。我尝试了那里给出的答案。我必须说,有一个答案对我有效,但文档清楚地表明,不要使用这种方法。所以我在这里问 我的项目设置Java Android NDK:您的应用程序构建脚本指向未知文件:./jni/Android.mk,java,android,android-ndk,build-error,Java,Android,Android Ndk,Build Error,我在stackoverflow(,和)中看到了4个类似的问题。我尝试了那里给出的答案。我必须说,有一个答案对我有效,但文档清楚地表明,不要使用这种方法。所以我在这里问 我的项目设置 在Mac OS X Mountain Lion 10.8.2、Eclipse Juno、gcc 4.2.1、GNU Make上运行 3.8.1 我的项目是学习NDK的测试项目,目标是API 16, 旨在支持API 8及以上版本 我的项目在path ~/Desktop/PROJECT/ANDROID/WORKSPACE
~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
~/Documents/ANDROID/ANDROID\u NDK\u r8a
Android.mk
文件(路径:$my\u project\u path/jni/Android.mk
)
在$MY\u PROJECT\u PATH/jni/Application.mk
中添加了一个Application.mk
文件
APP_PLATFORM := android-16
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PROJECT_PATH := /Users/myusername/Desktop/PROJECTS/ANDROID/WORKSPACE/NDKResearch
然后我在bashshell中执行了ndk build
## cd ~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
## ~/Documents/ANDROID/android_ndk_r8a/ndk-build
只是为了得到标题中提到的错误
我的问题是什么?
从以上链接的线程中,我确实可以工作。其他人都没有。但ndk的文档明确指出不要使用这种方法。来自ndk附带的Overview.html文件(找不到在线版本)
使用Application.mk有两种方法:
- 将它放在$PROJECT/jni/Application.mk下,它将被拾取 通过“ndk构建”脚本自动启动(稍后将对此进行详细介绍)
- 将其置于$NDK/apps//Application.mk下,其中$NDK 指向NDK安装路径。之后,发射 “make APP=”来自NDK目录 这是Android NDK r4之前使用此文件的方式。 出于兼容性的原因,仍然支持它,但我们强烈支持它 鼓励你改用第一种方法,因为它非常有用 更简单,不需要修改/更改 NDK安装树
所以我的问题是,有人用第一种方法成功了吗?有什么原因不能工作吗 对我有效的是在我的.bashrc中添加以下行
export NDK\u PROJECT\u PATH=“.”
然后在项目目录中键入
source~/.bashrc
和ndk build
。即使从Application.mk中删除APP\u project\u PATH:=/Users/myusername/Desktop/PROJECTS/ANDROID/WORKSPACE/NDKResearch,您也会遇到问题吗?我注意到,您正在使用gnustl处理RTTI和异常,但您的源文件以.c,据我所知,它导致从gcc而不是g++编译。我不知道这是否会导致您收到错误消息,但可能值得将源文件命名为可识别的cpp扩展名(尽管8存在问题,请参见此处的LOCAL_cpp_扩展名)或添加LOCAL_cpp_扩展名:=.cYou可以将Android.mk
移动到${project}/jni
目录中。
## cd ~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
## ~/Documents/ANDROID/android_ndk_r8a/ndk-build