我下载了适用于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();
Run Code Online (Sandbox Code Playgroud)
c ++代码(h):
extern "C"{
JNIEXPORT jstring JNICALL Java_com_example_test_MainActivity_get_1text_1from_1cpp(JNIEnv *, jobject);
}
Run Code Online (Sandbox Code Playgroud)
c ++代码(cpp):
JNIEXPORT jstring JNICALL Java_com_example_test_MainActivity_get_1text_1from_1cpp(JNIEnv * env, jobject){
return env->NewStringUTF( "hello from C++" );
}
Run Code Online (Sandbox Code Playgroud)
代码无误地运行.但是当我在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()之后解析挂起的断点."