eclipse编译调试java与ndk c++的混合代码

 转载自:http://blog.sina.com.cn/s/blog_53e89d4f0100vom1.html

1 用常规方法建立或导入java工程。

 

2 在工程所在目录下建立jni目录,所有的c++代码和mk文件都放在这个目录下。

 

3 从sample目录里拷贝Android.mk和Application.mk到jni目录下并修改相应内容。

 

4 如果包含多个c++模块,那么修改Application.mk的APP_MODULES字段,例:

    APP_MODULES= freetype myapp2

  同时建立freetyp.mk,myapp2.mk,修改android.mk为:

    LOCAL_PATH :=$(call my-dir)
    include$(LOCAL_PATH)/freetype.mk
    include$(LOCAL_PATH)/myapp2.mk

  也就是说:android.mk里可以包含多个模块的mk文件。

 

5 如果要使用c++库函数,在Application.mk里加上

    APP_STL:= stlport_shared

  在android.mk里加上:(注意不用手工添加stlport头文件目录)

    LOCAL_STATIC_LIBRARIES+= libstlport_shared.so

  另外java代码里所有打包进apk的模块都要手工load,否则要异常:(不像windows是自动load)
   System.loadLibrary("stlport_shared");
   System.loadLibrary("freetype");
   System.loadLibrary("myapp2");

 

5把java工程改成c++混合工程:file->new->other->c/c++->convertto a c/c++ project

eclipse编译调试java与ndk <wbr><wbr>c++的混合代码


eclipse编译调试java与ndk <wbr><wbr>c++的混合代码

在工程上右键属性,修改如下:eclipse编译调试java与ndk <wbr><wbr>c++的混合代码
  cygwin/bin要加入系统path环境变量里。NDK_ROOT为ndk所在目录,也要加入系统环境变量。
 

7 build工程,顺利编译出所有模块。

 

8 新建一个调试配置:

eclipse编译调试java与ndk <wbr><wbr>c++的混合代码

 

eclipse编译调试java与ndk <wbr><wbr>c++的混合代码
c/c++ application为当前工程目录的obj\local\armeabi\app_process。然后点击Selectother...eclipse编译调试java与ndk <wbr><wbr>c++的混合代码

继续修改属性:eclipse编译调试java与ndk <wbr><wbr>c++的混合代码
debugger:F:\android-ndk-r5b\toolchains\arm-eabi-4.4.0\prebuilt\windows\bin\arm-eabi-gdb.exe

file: F:\tj\at_utils\build\android\obj\local\armeabi\gdb.setup

eclipse编译调试java与ndk <wbr><wbr>c++的混合代码

9进入ndk目录,把ndk-gdb文件复制成ndk-gdb2。打开ndk-gdb2,屏蔽掉最后第1和最后第5句话,屏蔽的方法是句子最前面加#:

#echo "target remote :$DEBUG_PORT" >>$GDBSETUP
if [ -n "$OPTION_EXEC" ] ; then
    cat$OPTION_EXEC >> $GDBSETUP
fi
#$GDBCLIENT -x `native_path $GDBSETUP`

 

10 在工程的obj\local\armeabi目录下建立一个叫dbg.bat的文件,文件内容为:

set ANDROID_NDK_ROOT=/cygdrive/f/android-ndk-r5b

bash %NDK_ROOT%/ndk-gdb2

(图是r5b版本的,不需要第一句,r5c版需要定义ANDROID_NDK_ROOT)

eclipse编译调试java与ndk <wbr><wbr>c++的混合代码

现在设置工作全部完成,可以开始调试了。

调试步骤为:

1 启动java程序

2启动后双击dbg.bat,这个时候会弹出一个小dos窗口,不要关闭这个窗口,里面是gdbserver。当用户结束调试后这个窗口会自动关闭。

3 再次点击调试按钮下旁边的小三角形按钮,选择调试配置,找到刚才的c++ aplication,点击debug。(见过程8)

这个时候就可以同时调试java和c++代码了。不过调试c++代码性能非常差,速度不是一般的慢。

eclipse编译调试java与ndk <wbr><wbr>c++的混合代码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值