使用javah快速生成本地方法及生成so动态库文件
发布日期:2021-06-30 18:38:49 浏览次数:2 分类:技术文章

本文共 625 字,大约阅读时间需要 2 分钟。

使用javah快速生成本地方法及生成so动态库文件

1、生成包含本地方法的.h文件

如果使用jdk1.6可以直接到bin/classess,在cmd窗口使用如:javah com.lqr.test.MainActivity 命令,即可在bin/classess目录下生成包含本地方法的.h文件。

如果使用jdk1.7及以上版本,则要到src目录下操作以上命令,会在src目录下生成包含本地方法的.h文件,原因是1.7后会检查类的关联。

2、得到本地方法:
打开生成好的.h文件,把相应的本地方法复制到自己的xxx.c文件中,注意要实现该方法,否则会报方法找不到这种错误。
报错代码如下:

Caused by: java.lang.UnsatisfiedLinkError: Native method not found: com.lqr.test.MainActivity.result_from_c:(II)I

3、到jni目录下,使用ndk-build命令即可在lib目录下生成对应处理器平台的so动态库文件。
说明:在jni中,下划线"_"表示层级结构,所以如果本地方法名尽量避免使用下划线。
如果一定要用到下划线,解决方法有:
(1)用javah直接生成对应本地方法,jdk会自动帮我们生成正确无误的方法名。
(2)简单粗暴的在方法名的每个下划线后面写上一个数字1即可,如 result_from_c 对应是 result_1from_1c

转载地址:https://linqiarui.blog.csdn.net/article/details/50987682 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:使用NDK时的一些小知识点
下一篇:常见文件操作代码(文件管理软件)

发表评论

最新留言

很好
[***.229.124.182]2024年04月11日 13时13分23秒