eclipse生成SO文件

来源:互联网 发布:淘宝宝贝图片怎么修改 编辑:程序博客网 时间:2024/05/22 22:32
Eclipse生成so文件:
1.首先需要eclipse,jdk能正常开发
2.点Window->Preferences->Android->NDK,设置NDK路径(先要下载。如:E:\android-ndk-r9c)
3.在工程上右键点击Android Tools->Add Native Support...,然后给我们的.so文件取个名字,
  例如:myndk(myndk.so)
  这时候工程就会多一个jni的文件夹,jni下有Android.mk和my-ndk.cpp文件。
  Android.mk是NDK工程的Makefile,myndk.cpp就是NDK的源文件
4.建议单独写一个类文件来加载动态库。
 如:
public class Load {
    static { 
        System.loadLibrary("NDKTest");//加载so
    }
    public native int addInt(int a, int b); //调用方法
 }


5.现在就可以去写myndk.cpp的代码了。
#include <jni.h>
#include "com_example_ndktest_Load.h"


//JNI接口的命名规范是:Java_ + 调用该方法的包名(包名的点用_代替) + _ + 调用该接口的类名 + _ + 方法名,对于实例方法,
//有两个参数是必要的,一个JNI的环境指针JNIEnv *,另一个是调用该方法的Java实例jobject
JNIEXPORT jint JNICALL Java_com_example_ndktest_Load_addInt (JNIEnv *, jobject, jint a, jint b) {
    return a + b;
}


6.注意事项
1.编译头文件
(1)  cmd进入文件目录,一般到src目录就可以了
(2) 调用:javah -classpath . -jni 包名.类名。(如:javah -classpath . -jni com.buaa.testjni.TestJNI)
(这时编译成功的话在jni文件夹下就有.h文件了)
2.编译也许会遇到Unable to launch cygpath. Is Cygwin on the path?错误,解决办法如下:


工程右键,点Properties->C/C++ Build的Building Settings中去掉Use default build command,然后输入${NDKROOT}/ndk-build.cmd
3.cmd进入到项目目录下(可以是src输入:ndk-build  就可以得到so文件(前提是配置好了NDK)
在C/C++ Build中点击Environment,点Add...添加环境变量NDKROOT,值为NDK的根目录(如:E:\android-ndk-r9c)
1 1
原创粉丝点击