我下载了适用于 Linux 和 Android NDK 的 Android SDK Bundle。安装了 ADT,我安装了 CDT。
我创建了一个 Android 项目并添加了本机支持 (jni)。然后我用 java 代码编写了本机函数,该函数以 c++ 代码导出。在 C++ 代码中,我定义了这个函数。
Java代码:
static {
System.loadLibrary("test");
}
private native String get_text_from_cpp();
c++代码(h):
extern "C"{
JNIEXPORT jstring JNICALL Java_com_example_test_MainActivity_get_1text_1from_1cpp(JNIEnv *, jobject);
}
C++代码(cpp):
JNIEXPORT jstring JNICALL Java_com_example_test_MainActivity_get_1text_1from_1cpp(JNIEnv * env, jobject){
return env->NewStringUTF( "hello from C++" );
}
代码可以正常工作。但是当我在 c++ 代码中设置断点时,它没有被命中。
build-nkd NDK_DEBUG = 1 - 包括在内
我按照这个说明http://tools.android.com/recent/usingthendkplugin
jni/ 中的 Android.mk 具有 LOCAL_CFLAGS := -g
我已经阅读了很多信息,但我无法自定义 Eclipse。请帮助任何人。
PS:对不起,我的英语不是我的母语。我写作有困难。
添加:在调试期间控制台显示:“警告:无法加载 95 个库的共享库符号,例如 /system/bin/linker。使用“info sharedlibrary”命令查看完整列表。你需要“set solib- search-path”或“set sysroot”?警告:无法找到动态链接器断点函数。GDB 将最终重试。同时,GDB 很可能无法调试共享库初始化程序或在 dlopen() 之后解决挂起的断点。