我正在尝试让 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 文件夹作为包含清单文件的文件夹下的子文件夹,对吗?
任何有关如何使调试工作的提示都值得赞赏。