关于Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: Android.mk引发的思考
程序之美
有一些老的安卓JNI工程,进行编译的时候经常会遇到ndk版本不一致,或者编译器不合适的,各种报错,搞得好多初学ndk开发的小伙伴一头雾水,我这里给出一些简单实用的处理方法,这些方法也都是我自己遇到问题,亲身解决问题的,绝大部分都是和环境变量的配置有很大关系,希望能够帮助到正在进行JNI学习的小伙伴。
问题
首先我们先看下:
NDK编译报错: Your APP_BUILD_SCRIPT points to an unknown file/Please define the NDK_PROJECT_PATH
原因分析
这种报错原因是 ndk不知道编译的路径下,哪个文件是可用或者正确的。主要是以下三个值进行决定的:
NDK_PROJECT_PATH, APP_BUILD_SCRIPT, NDK_APPLICATION_MK,
Your APP_BUILD_SCRIPT points to an unknown file -> 将ndk-build 的执行的路径改为项目的路径
那么还是会报Please define the NDK_PROJECT_PATH 异常,
解决方法
方法1
就是把这些文件放在一个jni目录下, 进入jni目录然后在编译
将 jni 的部分,包含android.mk,Application.mk 文件放在 jni 文件夹里面,保证文件显性课寻址,
然后ndk-build 等即可
方法2
一个就是制定上面三个变量的值, 如:我要编译我当前目录的源文件, 当然包含Android.mk 和Application.mk 文件, 可以使用这样的命令编译:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk
如果后续还是有报错,哪有是缺失文件或者名称路径错误之类的,我们可以加上日志打印,可以更加详细的定位问题,分析原因。如下命令:
ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk NDK_APPLICATION_MK=./Application.mk NDK_LOG=1
这样我们就可以根据日志打印中给我们的提示,进行原因分析,定位问题,一一进行改正。