【问题标题】:Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mkAndroid NDK:您的 APP_BUILD_SCRIPT 指向一个未知文件:./jni/Android.mk
【发布时间】:2012-12-05 10:18:28
【问题描述】:

好吧,我在 stackoverflow 中看到了 4 个类似的问题(thisthisthisthis)。我尝试了那里给出的答案。我必须说一个答案对我有用,但文档明确说不要使用这种方法。所以我在这里问..

我的项目设置

  1. 在 Mac OS X Mountain Lion 10.8.2、Eclipse Juno、gcc 4.2.1、GNU Make 上运行 3.8.1.
  2. 我的项目是一个学习NDK的测试项目,针对API 16, 打算支持 API 8 及更高版本。
  3. 我的项目位于路径 ~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
  4. 我的 NDK 路径是 ~/Documents/ANDROID/android_ndk_r8a

我不知道路径信息有什么帮助。但是我总是在 bash 中给出正确的路径时遇到问题。所以就在这里发布吧。

我做了什么?

在我的 NDKResearch 项目中,我添加了一个 Android.mk 文件(路径:$MY_PROJECT_PATH/jni/Android.mk

include $(CLEAR_VARS)
LOCAL_PATH:= $(call my-dir)
LOCAL_CPP_FEATURES += -fno-exceptions
LOCAL_SRC_FILES := \
     Log.c \
     Calculate.c 

LOCAL_MODULE := libSoundTouch

include $(BUILD_SHARED_LIBRARY)

$MY_PROJECT_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

然后我在 bash shell 中执行了ndk-build

## cd ~/Desktop/PROJECT/ANDROID/WORKSPACE/NDKResearch
## ~/Documents/ANDROID/android_ndk_r8a/ndk-build

只是为了得到标题中提到的错误。

我的问题是什么?

从上面链接的线程中,user sege's answer 确实为我工作。其他人都没有。但是 ndk 的文档明确声明不要使用这种方法。来自 ndk 附带的 Overview.html 文件(找不到在线版本)。

有两种方法可以使用 Application.mk:

  • 把它放在$PROJECT/jni/Application.mk下,它就会被选中 由“ndk-build”脚本自动启动(稍后会详细介绍)

    ​​>
  • 将它放在$NDK/apps//Application.mk 下,其中$NDK 指向您的 NDK 安装路径。之后,启动 "make APP=" 来自 NDK 目录。

    这是在 Android NDK r4 之前使用此文件的方式。 出于兼容性原因,它仍然受支持,但我们强烈 鼓励您改用第一种方法,因为它很多 更简单,不需要修改/更改目录 NDK 安装树。

所以我的问题是,有人用第一种方法成功了吗?它不工作的任何原因?

【问题讨论】:

  • 即使您从 Application.mk 中删除 APP_PROJECT_PATH := /Users/myusername/Desktop/PROJECTS/ANDROID/WORKSPACE/NDKResearch 也会遇到问题吗?
  • 我注意到的一件事是,您将 gnustl 用于 RTTI 和异常,但您的源文件以 .c 结尾,据我所知,这会导致从 gcc 而不是 g++ 编译。我不知道这是否会导致您收到错误消息,但可能值得将源文件命名为可识别的 cpp 扩展名(尽管 8 存在问题,请参见此处 LOCAL_CPP_EXTENSION)或添加 LOCAL_CPP_EXTENSION := 。 c

标签: java android android-ndk build-error


【解决方案1】:

对我有用的是在我的 .bashrc 中加入以下行

export NDK_PROJECT_PATH="."

然后在项目目录中输入source ~/.bashrcndk-build

【讨论】:

  • 您可以将Android.mk 移动到${project}/jni 目录中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 2011-09-23
  • 2017-01-05
相关资源
最近更新 更多