android 使用 ndk生成.so文件

操作系统 ubuntu

1.在ndk/samples目录下 new android project

2.在.java里面声明native method

3.命令进入/bin/classes目录下,运行 javah com.example.hellojni.HelloJni(com.example.hellojni:包名,HelloJni:类名)

4.将生成的.h文件拷贝到项目jni目录下,并建立Android.mk和相对应的.c文件

5.命令进入项目根目录,然后编译,如:

cd <ndk-root>/samples/hello-jni

<ndk_root>/ndk-build

注意:(1)com.example.hellojni 为包名,注意运行Javah 的当前目录 为 <ndk>/examples/hello-jni/bin/classes (你也可以使用javah 的选项来指定classpath);(2)Android.mk可以考其他项目的,但是需要修改LOCAL_MODULE和LOCAL_SRC_FILES


如果没有声明具体的形参,会引起下面错误

Compile thumb  : myjni <= myjni.c
jni/myjni.c: In function 'Java_com_example_myjni_MainActivity_stringFromJNI':
jni/myjni.c:28:3: error: parameter name omitted
jni/myjni.c:28:3: error: parameter name omitted
jni/myjni.c:29:11: error: 'env' undeclared (first use in this function)
jni/myjni.c:29:11: note: each undeclared identifier is reported only once for each function it appears in
make: *** [obj/local/armeabi/objs/myjni/myjni.o] Error 1

参考: http://blog.csdn.net/tiandiren2007/article/details/7426893


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值