您的APP_BUILD_SCRIPT指向一个未知文件:./ jni / Android.mk

时间:2012-02-20 10:24:41

标签: android android-ndk java-native-interface ndk-gdb

我想让ndk-gdb工作,但我遇到了一些问题。

我的项目结构是这样的:

trunk
--indiana (Here is the android_manifest)
--ubravo_java
----mbravo (here is the native code)
------jni  (here are the Android.mk and Application.mk)

问题1:我知道我可能必须从清单所在的目录运行ndk-gdb吗?或者我将--project参数提供给ndk-gdb命令。

所以,如果我尝试像这样启动ndk-gdb:

ndk-gdb --start --force --verbose --project=/home/johan/projects/indiana2/trunk/indiana

我得到这个输出对我来说表明它是试图直接在android_manifest文件所在的主项目的子文件夹中找到Android.mk但是我可能错了。

Android NDK installation path: /home/johan/android-ndk-r7
Using default adb command: /home/johan/android-sdk-linux/platform-tools//adb
ADB version found: Android Debug Bridge version 1.0.29
Using final ADB command: '/home/johan/android-sdk-linux/platform-tools//adb'
Using specified project path: /home/johan/projects/indiana2/trunk/indiana
Found package name: net.genaker.indiana
/home/johan/android-ndk-r7/build/core/add-application.mk:133: *** Android NDK: Aborting...    .  Stop.
ABIs targetted by application: Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk    
Device API Level: 10
Device CPU ABIs: armeabi-v7a armeabi
ERROR: The device does not support the application's targetted CPU ABIs!
       Device supports:  armeabi-v7a armeabi
       Package supports: Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk

Application.mk中的我的APP_BUILD_SCRIPT路径如下所示:

  

APP_BUILD_SCRIPT:= $(APP_PROJECT_PATH)/jni/Android.mk

但是在这里我不确定APP_PROJECT_PATH是指什么。我也尝试硬编码Android.mk文件的完整路径,如/ home / johan / projects / ...等,但错误仍然出现:

  

您的APP_BUILD_SCRIPT指向未知文件:./ jni / Android.mk

所以似乎路径没有改变,就像它甚至没有看我的Application.mk。

我试图搜索完整的trunk目录以获取对APP_PROJECT_PATH的引用,并且此参数仅在此Application.mk中的此文件夹中定义。我只是假设我能够创建一个项目并调试它而不将/ jni文件夹作为子文件夹直接放在包含清单文件的文件夹下面吗?

有关如何使调试正常工作的任何提示。

1 个答案:

答案 0 :(得分:3)

我今天遇到了同样的问题,我的解决方案是在build-native.sh之前在脚本下面执行: export NDK_PROJECT_PATH = [你的项目文件夹] / android (请注意,您必须使用绝对路径)

然后就可以了。我想你可以在Application.mk中硬编码APP_PROJECT_PATH,它应该是相同的。