Android.mk与jni目录的关系

附1: Android.mk与jni目录的关系:
在某目录下,如/src/modules1/下存放Android.mk和Application.mk,调用ndk-build试图编译时,会遇到如下错误:
Android NDK: Could not find application project directory !    
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.    
/opt/android-ndk-r9d/build/core/build-local.mk:148: *** Android NDK: Aborting    .  Stop.
 
这是因为,当前Android.mk 未放置在jni目录内。所以ndk-build无法找到Android.mk. (ndk-build会从此目录向上一直找到jni目录,并从jni目录中找到Android.mk)且NDK_PROJECT_PATH, APP_BUILD_SCRIPT, NDK_APPLICATION_MK 是一个空的值。
如何解决这个问题呢。首先当然是创建jni目录,并在其中添加Android.mk和Application.mk.

但另一方面,也可以显性的指出这三个值:
目录结构如下:
/src/modules1/Android.mk
在此目录下:
/opt/android-ndk-r9d/ndk-build -B V=1 NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk
也可以正常编译。

注意:此处NDK版本为NDK R7C.(不同NDK版本,ndk-build所产生的Makefile并不完全相同)
时间: 2024-12-07 17:19:10

Android.mk与jni目录的关系的相关文章

Android JNI学习笔记(三)-编译文件Android.mk、Application.mk 与camke

1. 前言 在android2.2中,加入了cmake编译,而以前都是用Android.mk.Application.mk的,今天就来记录下,他们的配置选项. 2. Android.mk Android.mk在jni目录下,用于描述构建系统的源文件以及 shared libraries .文件格式如下: 以LOCAL_PATH变量开始 LOCAL_PATH := $(call my-dir) 紧接着是CLEAR_VARS变量 include $(CLEAR_VARS) 接下来LOCAL_MODU

Android Jni Android.mk经常使用语句

仅仅要涉及JNI开发都涉及到Android.mk编写,它也是一种makefile语言. 以上一篇博客中提供的project为例! <1> : 信息打印 : 既然是一种简易语言那么首先应该知道可以打印脚本信息的语法部分:一个是基本信息类型,一个是警告,错误类型 $(info TEXT......) 这个函数运行的时候,会输出: TEXT... ... $(error TEXT......) 这个函数被运行的时候,会输出:TEXT......,而且终止make的运行. $(warning TEXT

android.mk android源码编译

http://www.cnblogs.com/chenbin7/archive/2013/01/05/2846863.html Android.mk简单分析 2013-01-05 22:51 by ...平..淡..., 884 阅读, 0 评论, 收藏, 编辑 LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_SRC_FILES := $(call all-java-fil

Android.mk官方说明 中文翻译

转载请注明出处:http://blog.csdn.net/qq_15650553/article/details/51548025 译者注:第一次做这样的翻译,自己感觉还是很多不足,有些概念没有很好的理解,所以翻译过来的中文可能也会有问题.这篇文章主要是用来记录自己的学习所得.所以网友们若要根据下面的译文来学习,不是不行,但是请谨慎. 这篇文章描述了Android.mk文件的语法,这个文件将Android NDK与你的c/c++代码联系到一起. Overview 这个Android.mk文件存在

Android.mk详解

概述 Android.mk文件用来向编译系统描述如何编译你的源代码.更确切地说,该文件其实就是一个小型的Makefile.由于该文件会被NDK的编译工具解析多次,因此应该尽量减少源码中声明变量,因为这些变量可能会被多次定义从而影响到后面的解析.这个文件的语法允许把源代码组织成模块,每个模块属于下列类型之一: 1.  APK程序:一般的Android程序,编译打包生成apk文件. 2. JAVA库:java类库,编译打包生成jar包文件. 3. C\C++应用程序:可执行的C/C++应用程序. 4

Android NDK开发指南---Application.mk文件和android.mk文件

https://android.googlesource.com/platform/development/+/donut-release/ndk/docs/OVERVIEW.TXT https://android.googlesource.com/platform/ndk/+/4e159d95ebf23b5f72bb707b0cb1518ef96b3d03/docs/ANDROID-MK.TXT https://android.googlesource.com/platform/ndk/+/4

Android.mk简介

转载:http://blog.csdn.net/sanchuyayun/article/details/8242901 Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译. 因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的.因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定义. 一个Android.mk文件可以编译多个模块,每个模块属下列类型之一: 1)APK程序 一般的An

Android开发实践:Android.mk模板

关于Android NDK开发的文章已经比较多了,我的博客中也分享了很多NDK开发相关经验和技巧,今天简单写了一个 Android.mk 的示例模板,供初学者参考. 本模板主要给大家示例 Android NDK 开发中的如下几个问题: 1. 如何自动添加需要编译的源文件列表 2. 如何添加第三方静态库.动态库的依赖 3. 如何构造一个完整的NDK工程框架 假设我们的项目依赖 libmath.a, libjson.a, libffmpeg.so 这几个第三方库文件,项目包含如下几个模块:algor

Android.mk文件语法规范及使用模板

Android.mk文件语法规范 根据eoeandroid上的的连载,进行一些更新.修改和加亮. 今天翻译ANDROID-MK.TXT文件(英文原文件在/development/Ndk/Docs/android-mk.txt) Android.mk文件语法规范 Introduction: Android.mk编译文件是用来向Android NDK描述你的C,C++源代码文件的, 这篇文档描述了它的语法.在阅读下面的内容之前,假定你已经阅读了docs/OVERVIEW.TXT文件,了解了它们的脚色