【问题标题】:Android NDK: Your APP_BUILD_SCRIPT points to an unknown file:Android NDK:您的 APP_BUILD_SCRIPT 指向一个未知文件:
【发布时间】:2012-05-22 05:10:00
【问题描述】:
cd Documents/workspace/ndkfoo

我的项目主页

然后我尝试运行 ndk-build 命令,但不断得到

ndk-build
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /Users/naveenkumar/workspace/com.gslab.zap:/Users/naveenkumar/Android/android-ndk-r8:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/naveenkumar/Android/android-ndk-r8:/usr/X11/bin:/usr/local/git/bin/jni/Android.mk   

我知道 APP_BUILD_SCRIPT 指向不同的地方,它应该是 /Users/naveenkumar/Documents/workspace/ndkfoo/jni/Android.mk 我在这个地方有我的 Android.mk...

但我不知道如何将 APP_BUILD_SCRIPT 更改为此路径 :( ,,thnks 提前

我的 Android.mk 很好......这是我的 Android.mk,它位于项目的 jni 文件夹下:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
#here we give our module name and source files.
LOCAL_MODULE := ndkfoo
LOCAL_SRC_FILES := ndkfoo.c
include $(BUILD_SHARED_LIBRARY)

当我使用 NDK_LOG=1 运行它时,我得到以下结果

NAVEEN-KUMARs-MacBook-Pro:ndkfoo naveenkumar$ /Users/naveenkumar/Downloads/android-ndk-r8/ndk-build NDK_LOG=1
HOST_OS=darwin
HOST_ARCH=x86_64
HOST_TAG=darwin-x86 (no 64-bit prebuilt binaries detected)
GNUMAKE=/Users/naveenkumar/Downloads/android-ndk-r8/prebuilt/darwin-x86/bin/make (NDK prebuilt)
Android NDK: NDK installation path auto-detected: '/Users/naveenkumar/Downloads/android-ndk-r8'
Android NDK: GNU Make version 3.81 detected
Android NDK: Host OS was auto-detected: darwin
Android NDK:  Host operating system detected: darwin
Android NDK: Host CPU was auto-detected: x86
Android NDK: HOST_TAG set to darwin-x86
Android NDK: Host tools prebuilt directory: /Users/naveenkumar/Downloads/android-ndk-r8/prebuilt/darwin-x86/bin
Android NDK: Host 'echo' tool: echo
Android NDK: Host 'awk' tool: /Users/naveenkumar/Downloads/android-ndk-r8/prebuilt/darwin-x86/bin/awk
Android NDK: Host 'awk' test returned: Pass
Android NDK:  This NDK supports the following target architectures and ABIS:
Android NDK:    arm: armeabi armeabi-v7a
Android NDK:    mips: mips
Android NDK:    x86: x86
Android NDK:  This NDK supports the following toolchains and target ABIs:
Android NDK:    arm-linux-androideabi-4.4.3:  armeabi armeabi-v7a
Android NDK:    mipsel-linux-android-4.4.3:  mips
Android NDK:    x86-4.4.3:  x86
Android NDK: Found platform root directory: /Users/naveenkumar/Downloads/android-ndk-r8/platforms
Android NDK: Found supported platforms: android-14 android-3 android-4 android-5 android-8 android-9
Android NDK: PLATFORM android-14 supports: arm mips x86
Android NDK:   ABI arm sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-14/arch-arm
Android NDK:   ABI mips sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-14/arch-mips
Android NDK:   ABI x86 sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-14/arch-x86
Android NDK: PLATFORM android-3 supports: arm mips x86
Android NDK:   ABI arm sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-3/arch-arm
Android NDK:   ABI mips sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-3/arch-mips
Android NDK:   ABI x86 sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-3/arch-x86
Android NDK: PLATFORM android-4 supports: arm mips x86
Android NDK:   ABI arm sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-4/arch-arm
Android NDK:   ABI mips sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-4/arch-mips
Android NDK:   ABI x86 sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-4/arch-x86
Android NDK: PLATFORM android-5 supports: arm mips x86
Android NDK:   ABI arm sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-5/arch-arm
Android NDK:   ABI mips sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-5/arch-mips
Android NDK:   ABI x86 sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-5/arch-x86
Android NDK: PLATFORM android-8 supports: arm mips x86
Android NDK:   ABI arm sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-8/arch-arm
Android NDK:   ABI mips sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-8/arch-mips
Android NDK:   ABI x86 sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-8/arch-x86
Android NDK: PLATFORM android-9 supports: arm mips x86
Android NDK:   ABI arm sysroot is: /Users/naveenkumar/Downloads/android-ndk-    r8/platforms/android-9/arch-arm
Android NDK:   ABI mips sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-9/arch-mips
Android NDK:   ABI x86 sysroot is: /Users/naveenkumar/Downloads/android-ndk-r8/platforms/android-9/arch-x86
Android NDK: Found stable platform levels: 14 3 4 5 8 9
Android NDK: Found max platform level: 14
Android NDK: Found project path: /Users/naveenkumar/workspace/com.gslab.zap:/Users/naveenkumar/Android/android-ndk-r8:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/naveenkumar/Android/android-ndk-r8:/usr/X11/bin:/usr/local/git/bin
Android NDK: Ouput path: /Users/naveenkumar/workspace/com.gslab.zap:/Users/naveenkumar/Android/android-ndk-r8:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/naveenkumar/Android/android-ndk-r8:/usr/X11/bin:/usr/local/git/bin/obj
Android NDK: Parsing /Users/naveenkumar/Downloads/android-ndk-r8/build/core/default-application.mk
Android NDK:   Defaulted to APP_PLATFORM=android-3
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: /Users/naveenkumar/workspace/com.gslab.zap:/Users/naveenkumar/Android/android-ndk-r8:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/naveenkumar/Android/android-ndk-r8:/usr/X11/bin:/usr/local/git/bin/jni/Android.mk    
/Users/naveenkumar/Downloads/android-ndk-r8/build/core/add-application.mk:133: *** Android NDK: Aborting...    .  Stop.

正如我们所看到的,我是主目录..仍然是错误的,还有我放在 jni 下的 Application.mk,所以我尝试将这三行粘贴到 Application.mk 中

APP_PROJECT_PATH := /Users/naveenkumar/Documents/workspace/ndkfoo
APP_BUILD_SCRIPT := /Users/naveenkumar/Documents/workspace/ndkfoo/jni/Android.mk
APP_MODULES      := ndkfoo

目录结构如下:现在我能够运行一次,所以它有.o和它生成的其他库......

NAVEEN-KUMARs-MacBook-Pro:workspace naveenkumar$ find ndkfoo/ -type f

ndkfoo//.classpath
ndkfoo//.project
ndkfoo//AndroidManifest.xml
ndkfoo//bin/classes/com/gslab/ndkdemo/BuildConfig.class
ndkfoo//bin/classes/com/gslab/ndkdemo/NDKFooActivity.class
ndkfoo//bin/classes/com/gslab/ndkdemo/R$attr.class
ndkfoo//bin/classes/com/gslab/ndkdemo/R$drawable.class
ndkfoo//bin/classes/com/gslab/ndkdemo/R$layout.class
ndkfoo//bin/classes/com/gslab/ndkdemo/R$string.class
ndkfoo//bin/classes/com/gslab/ndkdemo/R.class
ndkfoo//bin/classes.dex
ndkfoo//bin/ndkfoo.apk
ndkfoo//bin/res/drawable-hdpi/icon.png
ndkfoo//bin/res/drawable-ldpi/icon.png
ndkfoo//bin/res/drawable-mdpi/icon.png
ndkfoo//bin/resources.ap_
ndkfoo//gen/com/gslab/ndkdemo/BuildConfig.java
ndkfoo//gen/com/gslab/ndkdemo/R.java
ndkfoo//jni/Android.mk
ndkfoo//jni/Application.mk
ndkfoo//jni/ndkfoo.c
ndkfoo//libs/armeabi/libndkfoo.so
ndkfoo//obj/local/armeabi/libndkfoo.so
ndkfoo//obj/local/armeabi/objs/ndkfoo/ndkfoo.o
ndkfoo//obj/local/armeabi/objs/ndkfoo/ndkfoo.o.d
ndkfoo//proguard.cfg
ndkfoo//project.properties
ndkfoo//res/drawable-hdpi/icon.png
ndkfoo//res/drawable-ldpi/icon.png
ndkfoo//res/drawable-mdpi/icon.png
ndkfoo//res/layout/main.xml
ndkfoo//res/values/strings.xml
ndkfoo//src/com/gslab/ndkdemo/NDKFooActivity.java

这与未找到的构建脚本不重复,因为我指向正确的构建路径并触发了 cmake。

【问题讨论】:

  • 请将您的Android.mk 添加到问题中。
  • 我已经编辑了问题,提供了尽可能多的详细信息,,,,帮助我,,,,
  • 据我所知,您的 $PATH 变量似乎是文件名 jni/Android.mk 前面的内容。您能否将项目的文件列表附加到问题中:find ~/Documents/workspace/ndkfoo -type f。这将有助于确认文件的布局是否正确。
  • 我已经提供了我的项目的目录结构,存在的库是因为它之前运行了 2-3 次,然后它就不能工作了,是的,你是对的$PATH 变量,但如果我对 PATH 变量进行更改,那么它也不起作用:(
  • 我可以想到一个极端的解决方法,但这不是一个实际的解决方案:将命令别名到完整的 file_paths 并取消设置 PATH 变量。 alias ls=/bin/ls,alias mkdir=/bin/mkdir,... 等等,最后是 BACKUP_PATH="$PATH"; unset PATH。但是,这仅需要对那些由构建过程使用的命令执行 AND 从 PATH 获取。如果构建过程不使用它,则不需要别名。现在cd ndkfoo; $NDK_ROOT/ndk_build应该工作。要恢复路径(如果此方法有效),请执行 export PATH="$BACKUP_PATH" 并返回。

标签: android command-line android-ndk


【解决方案1】:

引用自此来源:https://groups.google.com/forum/#!topic/android-ndk/HIUR2gL6Xj0

构建系统试图找到 您的 AndroidManifest.xml 通过回溯目录。看起来像 它在 /home/myhome/AndroidManifest.xml 下找到了一个,并认为这是 项目路径的根目录。我认为这对应于另一个 (可能是陈旧的)项目,而不是您想要从事的项目。

尝试从包含您的目录的目录中调用 ndk-build AndroidManifest.xml 代替

我想你在这里也有类似的问题。

【讨论】:

  • 感谢您的回复,但是在这种情况下,路径将是该 AndroidManifest.xml 的路径,但在这里它提供了一种奇怪的路径 Android NDK:您的 APP_BUILD_SCRIPT 指向一个未知文件:/Users/naveenkumar/workspace/com.gslab.zap:/Users/naveenkumar/Android/android-ndk-r8:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin: /Users/naveenkumar/Android/android-ndk-r8:/usr/X11/bin:/usr/local/git/bin/jni/Android.mk 我试过这样做,但它不起作用:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 2016-09-13
相关资源
最近更新 更多