尝试编译Android NDK项目时出现以下错误:
ndk-build
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /home/lambergar/work/APIExample/jni/Android.mk
/home/lambergar/android/ndk/android-ndk-r5c/build/core/add-application.mk:116: *** Android NDK: Aborting... . Stop.
奇怪的是,“未知文件”(Android.mk)存在于报告为无效的路径下。
答案 0 :(得分:23)
同样的问题(在Windows 7中)但原因不同。
在环境参数中搜索后,我发现名为“NDK_PROJECT_PATH”的邪恶信息,其值为无效路径。
删除它,事情再次起作用;)
答案 1 :(得分:5)
我遇到了同样的问题。我通过在$ NDK / apps / ndktestapp中创建一个Application.mk来修复它,其中包含以下内容:
APP_PROJECT_PATH := /cygdrive/c/workspace/MyApp
然后调用
make APP=ndktestapp
来自NDK-Root的。希望有所帮助。
答案 2 :(得分:5)
在我的情况下,问题是项目路径中有空格。在这种情况下,请更改项目路径文件夹并再次导入项目。
答案 3 :(得分:3)
我通过向项目添加新构建解决了这个问题,瞧,它有效......不知道CLI构建的问题是什么。
答案 4 :(得分:3)
花了一两个小时才想出这个。很多人都遇到过这个问题。但是当我发现我实际上没有文件名Android.mk时它被命名为Andriod.mk,这足以让我遇到很多麻烦。抱歉我的原始咆哮,但这最终是整个问题。我建议如果你有这个问题,你应该检查一切,直到你发现错误。
这解决了我的问题。谢谢你们,无论如何你们都把我放在了正确的轨道上。
答案 5 :(得分:3)
您需要将env变量NDK_PROJECT_PATH
设置为您正在构建的项目的根目录。 NDK项目的根目录通常包含./jni
目录。
export NDK_PROJECT_PATH={root_of_project}
如果您的JNI代码在库中,则将NDK_PROJECT_PATH
设置为库项目。
答案 6 :(得分:3)
今天刚看到这个问题。 在我的情况下,实际问题是项目路径内的空间。
(是的,如果文件夹名称中有空格,ndk-build
将无法编译您的项目)
答案 7 :(得分:1)
答案 8 :(得分:1)
请勿在项目目录中留出任何空白。如果错误再次出现 然后在 buildTypes块下面编辑 build.gradle(Module:app) ,并添加以下行:
buildTypes {
release {
......................
}
}
sourceSets { main { jni.srcDirs = ['src/main/jni/','src/main/jniLibs/'] } }
externalNativeBuild {
ndkBuild {
path 'build/intermediates/ndk/debug/Android.mk'
}
}
答案 9 :(得分:0)
我遇到了与本主题类似的问题。我的解决方案是:首先检查文件是否存在于正确的路径中。其次,如果您的路径有任何空格,请将其删除或将您的项目重新定位到一个简单的路径。然后重建它。
答案 10 :(得分:0)
请删除这些目录
rm -rf .externalNativeBuild //if exits
rm -rf app/.externalNativeBuild
rm -rf app/.cxx/ //if exits
rm -rf app/build/
然后重建项目。
答案 11 :(得分:0)
对我来说,删除common/build/libs
和.gradle
目录就可以了。
答案 12 :(得分:0)
Details of the problem:
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /jni/Android.mk ...: *** Android NDK: Aborting... . Stop. Usually this is not the path of your project, so the reason for this error is that ndk could not find the correct Android.mk file path. solution:
Add NDK_PROJECT_PATH to "./" in the environment variable, the purpose is to tell the NDK that the jni currently to be compiled is located in the directory where the project is located.
答案 13 :(得分:0)
在我的情况下,项目文件夹名称中有一个空格,删除了重新导入Android Studio的空间,解决了问题
答案 14 :(得分:0)
在Android.mk文件中,您提供了jni文件夹所在的路径... 在你的情况下 ARTOOLKIT_DIR:= / home / lambergar / work / APIExample /
答案 15 :(得分:0)
我刚刚安装了Android-NDK并尝试了“ndk-build”。 我有完全相同的错误。这是我击败它的方式。
bash
export NDK_PROJECT_PATH={root_of_android_ndk}/samples/hello-jni
./ndk-build
这很有用。
答案 16 :(得分:-1)
Android Studio中的Gradle Experimental plugein添加了对Native项目构建的支持。