3

好吧,我在 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. 我的项目在 path ~/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)

在. Application.mk_$MY_PROJECT_PATH/jni/Application.mk

APP_PLATFORM := android-16
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_PROJECT_PATH := /Users/myusername/Desktop/PROJECTS/ANDROID/WORKSPACE/NDKResearch

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

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

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

我的问题是什么?

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

有两种使用 Application.mk 的方法:

  • 将它放在 $PROJECT/jni/Application.mk 下,它会被“ndk-build”脚本自动拾取(稍后会详细介绍)

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

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

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

4

1 回答 1

-1

对我有用的是将以下行放入我的 .bashrc

export NDK_PROJECT_PATH="."

然后在项目目录中键入source ~/.bashrc和。ndk-build

于 2014-02-09T20:50:16.027 回答