ANDROID 一键搞定JNI创建C头文件

目前:新版本的jre7中是不含jdk的,如果想用jdk中的工具,比如:javah.exe,则必须再下载安装个jdk,所以养成良好的习惯,安装jre的时候,同时安装jdk,jre和jdk下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html

这一篇写的也很好:http://yuanzhifei89.iteye.com/blog/1955532

下面转自:http://blog.youkuaiyun.com/helong275098760/article/details/19847315

一、使用环境 1、windows64位操作系统 2、ADT为adt-bundle-windows-x86_64-20130917    3、NDK为android-ndk-r9b

二、配置生成头文件.h

    ⒈首先,如图所示,点击External Tools Configurations...

       

    ⒉然后,如图所示,点击 

    

    ⒊接下来,看图操作

       

这里是为了复制:-classpath ${project_loc}\bin\classes -d ${project_loc}\jni -jni ${java_type_name}   

    

    最后点击Apply,然后 我们在一个android工程中新建一个class文件

    

    

三、配置build ndk,和上面类似,参考图中配置即可

      

      

     创建C文件

       

    创建Android.mk文件

      

    创建Application.mk文件

     

    最后 加载so的库文件  就可以把C语言的函数当Java函数使用了

      

注意:在system.loadLibrary("hello")中的so库是libhello.so,在loadlibrary()的时候注意去掉lib前缀。

好了,上面就是是用eclipse快速开发JNI的方法了,你学会了吗?


下面转自:http://blog.youkuaiyun.com/wh_19910525/article/details/8258134

1、在java代码里,如果想要 加载 libFileLoader.so ,
 使用

static {
    System.loadLibrary("FileLoader");
}

就可以加载这个动态库了。

这里要注意,参数只写xxx就可以了,不需要写libxxx,也不需要写libxxx.so。

还有一点要说明,System.loadLibrary这个函数会在如下路径搜索libxxx.so文件:
/system/lib
/data/data/you apk package/lib

但,如果libxxx.so还依赖其它.so文件,比如libyyy.so,则System.loadLibrary只会在/system/lib目录下去找,如果没找到,它不会自动到/data/data/you apk package/lib
下去找,这个时候就会报动态库没找到的错;
解决方法是在load libxxx.so之前,先load libyyy.so,如下:

System.loadLibrary("yyy");
System.loadLibrary("xxx");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值