Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android NDK:您的应用程序构建脚本指向未知文件:./jni/Android.mk_Java_Android_Android Ndk_Build Error - Fatal编程技术网

Java Android NDK:您的应用程序构建脚本指向未知文件:./jni/Android.mk

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

我在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/NDKResearch
  • 我的NDK路径是
    ~/Documents/ANDROID/ANDROID\u NDK\u r8a
  • 我不知道路径信息有什么帮助。但在bash中,我总是很难给出正确的路径。所以就把它贴在这里

    我做了什么? 在我的NDKResearch项目中,我添加了一个
    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