ndk 编译 so文件

使用ndk-build编译,如果windows需要cygwin环境,(cygwin+android NDK)

linux就好办了直接在项目路径使用 ngk-build脚本就能编译了

引用:http://blog.csdn.net/ouyangtianhan/article/details/7196137

一、准备工作

Cygwin  http://www.cygwin.com/setup.exe

android-ndk http://dl.google.com/android/ndk/android-ndk-r5-windows.zip

二、安装cygwin可以搜索一下比较简单。(安装时注意选择包时选择Devel)

三、配置NDK的编译环境,我这儿使用的Eclipse编译。

1.编辑cygwin目录下的 home\user(你的用户名)\.bash_profile

(Note:如果没有bash_profile文件,在etc/profile文件中写入,但注意最好用UE打开)

在最后添加上

ANDROID_NDK_ROOT=/cygdrive/E/android-ndk-r5 (你ndk的路径  cygwin访问其它驱动器/cygdrive/CDEFG...)

export ANDROID_NDK_ROOT

        2.在Eclipse中新建android工程,选择本地路径 NDK下的sample android-ndk-r5\samples\hello-jni



 然后选择版本完成新建工程。

3。在工程上面右键->Properties->Builders->New->Program



 Location 选择cygwin\bin\bash.exe

 Working Directory 可以不填

Arguments: --login -c "cd /cygdrive/工程的jni目录含有Android.mk&& $ANDROID_NDK_ROOT/ndk-build"   ($ANDROID_NDK_ROOT 为第一步设置的环境变量)

  4.



环境搭建完毕,刷新工程或者clean工程控制台会打印:

Gdbserver      : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver

Gdbsetup       : libs/armeabi/gdb.setup

Install        : libhello-jni.so => libs/armeabi/libhello-jni.so

编译成功。

然后运行虚拟机就能看到结果。

 

修改jni\hello-jni.c文件中的 return (*env)->NewStringUTF(env, "Hello from JNI datuo2!"); 保存自动编译,再运行看输出字符串发生变化。

原文地址:https://www.cnblogs.com/sode/p/2886429.html