4

我正在尝试让 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一样。

我试图在完整的主干目录中搜索对 APP_PROJECT_PATH 的引用,并且此参数仅在此 Application.mk 的此文件夹中定义。我只是假设我能够创建一个项目并对其进行调试,而无需将 /jni 文件夹作为包含清单文件的文件夹下的子文件夹,对吗?

任何有关如何使调试工作的提示都值得赞赏。

4

1 回答 1

3

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

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

于 2012-05-24T03:38:13.737 回答